diff --git a/uk/ac/sanger/artemis/util/DatabaseDocument.java b/uk/ac/sanger/artemis/util/DatabaseDocument.java index 27cfdf2c6bb5e8e2af30a22e13e0d16f27c549c3..f829393ba3bfcea2b22dfcbfac5f25107b0f10ac 100644 --- a/uk/ac/sanger/artemis/util/DatabaseDocument.java +++ b/uk/ac/sanger/artemis/util/DatabaseDocument.java @@ -28,6 +28,7 @@ import java.sql.*; import java.io.*; import java.util.Hashtable; import java.util.Vector; +import java.util.Date; import javax.swing.JOptionPane; /** @@ -43,6 +44,8 @@ public class DatabaseDocument extends Document private InputStreamProgressListener progress_listener; private Hashtable db; private Vector organism; + private String sqlLog = System.getProperty("user.home")+ + System.getProperty("file.separator")+"art_sql.log"; /** * @@ -179,8 +182,8 @@ public class DatabaseDocument extends Document " and featureloc.feature_id=feature.feature_id" + " and feature.type_id=cvterm.cvterm_id and cvterm.name='gene'"; + appendToLogFile(sql,sqlLog); ResultSet rs = st.executeQuery(sql); - StringBuffer cdsBuffer = new StringBuffer(); int loop = 1; @@ -230,6 +233,8 @@ public class DatabaseDocument extends Document if(cv_name != null) sql = sql + " AND cv.name='"+cv_name+"'"; + appendToLogFile(sql,sqlLog); + cvterm = new Hashtable(); try @@ -265,6 +270,8 @@ public class DatabaseDocument extends Document String sql = "SELECT name, residues from feature where feature_id = '"+ feature_id+"'"; + appendToLogFile(sql,sqlLog); + ResultSet rs = st.executeQuery(sql); rs.next(); @@ -290,16 +297,23 @@ public class DatabaseDocument extends Document Statement st = conn.createStatement(); - String sql = "select cvterm.cvterm_id, cvterm.name FROM cvterm, cv "+ - "WHERE cv.cv_id = cvterm.cv_id and cvterm.name = 'region'"; - ResultSet rs = st.executeQuery(sql); + String sql = "select type_id from feature where residues notnull"; + appendToLogFile(sql,sqlLog); + ResultSet rs = st.executeQuery(sql); rs.next(); - String cvterm_id = rs.getString("cvterm_id"); + String cvterm_id = rs.getString("type_id"); + +// String sql = "select cvterm.cvterm_id, cvterm.name FROM cvterm, cv "+ +// "WHERE cv.cv_id = cvterm.cv_id and cvterm.name = 'chromosome'"; +// ResultSet rs = st.executeQuery(sql); +// rs.next(); +// String cvterm_id = rs.getString("cvterm_id"); sql = new String("SELECT abbreviation, name, feature_id FROM organism, feature WHERE type_id = '"+ cvterm_id+"' and organism.organism_id=feature.organism_id "+ "ORDER BY abbreviation, name"); + appendToLogFile(sql,sqlLog); rs = st.executeQuery(sql); while(rs.next()) @@ -351,5 +365,39 @@ public class DatabaseDocument extends Document throw new ReadOnlyException ("this Database Document can not be written to"); } + /** + * + * Appends a log entry to the log file + * @param logEntry entry to add to log file + * @param logFileName log file name + * + */ + private void appendToLogFile(String logEntry, String logFileName) + { + BufferedWriter bw = null; + try + { + String dat = new java.util.Date().toString(); + bw = new BufferedWriter(new FileWriter(dat+":: "+logFileName, true)); + bw.write(logEntry); + bw.newLine(); + bw.flush(); + } + catch (Exception ioe) + { + System.out.println("Error writing to log file "+logFileName); + ioe.printStackTrace(); + } + finally // always close the file + { + if(bw != null) + try + { + bw.close(); + } + catch (IOException ioe2) {} + } + } + }