@@ -0,0 +1,2633 @@
+/*%0A Copyright (C) 2003 EBI, GRL%0A %0A This library is free software; you can redistribute it and/or%0A modify it under the terms of the GNU Lesser General Public%0A License as published by the Free Software Foundation; either%0A version 2.1 of the License, or (at your option) any later version.%0A %0A This library is distributed in the hope that it will be useful,%0A but WITHOUT ANY WARRANTY; without even the implied warranty of%0A MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU%0A Lesser General Public License for more details.%0A %0A You should have received a copy of the GNU Lesser General Public%0A License along with this library; if not, write to the Free Software%0A Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA%0A */%0Apackage org.ensembl.healthcheck.testcase.generic;%0A%0Aimport java.sql.Connection;%0Aimport java.sql.ResultSet;%0Aimport java.sql.SQLException;%0Aimport java.sql.Statement;%0A%0Aimport org.ensembl.healthcheck.DatabaseRegistryEntry;%0Aimport org.ensembl.healthcheck.ReportManager;%0Aimport org.ensembl.healthcheck.testcase.SingleDatabaseTestCase;%0A%0A/**%0A * Check for DNA that is not stored on the sequence-level coordinate system.%0A */%0A%0Apublic class SequenceLevel extends SingleDatabaseTestCase %7B%0A%0A%09/**%0A%09 * Constructor.%0A%09 */%0A%09public SequenceLevel() %7B%0A%0A%09%09addToGroup(%22post_genebuild%22);%0A%09%09addToGroup(%22release%22);%0A%09%09setDescription(%22Check for DNA that is not stored on the sequence-level coordinate system.%22);%0A%0A%09%7D%0A%0A%09/**%0A%09 * Run the test.%0A%09 * %0A%09 * @param dbre%0A%09 *          The database to use.%0A%09 * @return true if the test passed.%0A%09 * %0A%09 */%0A%09public boolean run(DatabaseRegistryEntry dbre) %7B%0A%0A%09%09boolean result = true;%0A%0A%09%09Connection con = dbre.getConnection();%0A%09%09String sql = %22SELECT cs.name, COUNT(1) FROM coord_system cs, seq_region s, dna d WHERE d.seq_region_id = s.seq_region_id AND cs.coord_system_id =s.coord_system_id AND attrib NOT LIKE '%25sequence_level%25' GROUP BY cs.coord_system_id%22;%0A%0A%09%09try %7B%0A%0A%09%09%09Statement stmt = con.createStatement();%0A%0A%09%09%09ResultSet rs = stmt.executeQuery(sql);%0A%0A%09%09%09if (rs == null) %7B%0A%0A%09%09%09%09ReportManager.correct(this, con, %22All DNA is attached to a sequence-level co-ordinate system.%22);%0A%0A%09%09%09%7D else %7B%0A%0A%09%09%09%09while (rs.next()) %7B%0A%0A%09%09%09%09%09String coordSystem = rs.getString(1);%0A%09%09%09%09%09int rows = rs.getInt(2);%0A%09%09%09%09%09%0A%09%09%09%09%09ReportManager.problem(this, con, String.format(%22Coordinate system %25s has %25d seq regions containing sequence, but it does not have the sequence_level attribute%22, coordSystem, rows));%0A%09%09%09%09%09result = false;%0A%0A%09%09%09%09%7D%0A%0A%09%09%09%7D%0A%09%09%09%0A%09%09%7D catch (SQLException e) %7B%0A%09%09%09System.err.println(%22Error executing: %22 + sql);%0A%09%09%09e.printStackTrace();%0A%09%09%7D%0A%0A%09%09return result;%0A%0A%09%7D // run%0A%0A%7D // SequenceLevel%0A

Check for DNA that is not stored on the sequence-level coordinate system.