From ffab2217e81f0e49e04df3b9b6436d8fe2c6b331 Mon Sep 17 00:00:00 2001 From: tjc <tjc@ee4ac58c-ac51-4696-9907-e4b3aa274f04> Date: Tue, 16 May 2006 10:14:51 +0000 Subject: [PATCH] fixes for jdbc dao and docs added git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@4339 ee4ac58c-ac51-4696-9907-e4b3aa274f04 --- .../sanger/artemis/chado/ChadoFeatureLoc.java | 4 ++- .../artemis/chado/ChadoFeatureProp.java | 17 +++++++++ .../chado/ChadoFeatureRelationship.java | 35 +++++++++++++++++++ uk/ac/sanger/artemis/chado/ChadoOrganism.java | 2 +- uk/ac/sanger/artemis/chado/JdbcDAO.java | 19 ++++++++-- .../sanger/artemis/util/DatabaseDocument.java | 27 +++++++++----- 6 files changed, 92 insertions(+), 12 deletions(-) diff --git a/uk/ac/sanger/artemis/chado/ChadoFeatureLoc.java b/uk/ac/sanger/artemis/chado/ChadoFeatureLoc.java index 792e68028..d2ec985e0 100644 --- a/uk/ac/sanger/artemis/chado/ChadoFeatureLoc.java +++ b/uk/ac/sanger/artemis/chado/ChadoFeatureLoc.java @@ -24,11 +24,13 @@ package uk.ac.sanger.artemis.chado; +/** + * Representation of featureloc table. + */ public class ChadoFeatureLoc { /** id of the parent feature */ private int srcfeature_id; - /** start position */ private int fmin; /** end position */ diff --git a/uk/ac/sanger/artemis/chado/ChadoFeatureProp.java b/uk/ac/sanger/artemis/chado/ChadoFeatureProp.java index de7b50775..6b998ad6c 100644 --- a/uk/ac/sanger/artemis/chado/ChadoFeatureProp.java +++ b/uk/ac/sanger/artemis/chado/ChadoFeatureProp.java @@ -24,6 +24,9 @@ package uk.ac.sanger.artemis.chado; +/** + * Representation of featureprop table. + */ public class ChadoFeatureProp { @@ -67,11 +70,25 @@ public class ChadoFeatureProp this.value = value; } + /** + * Any feature can have multiple values for any particular property type - + * these are ordered in a list using rank, counting from zero. For + * properties that are single-valued rather than multi-valued, the + * default 0 value should be used. + * @return + */ public int getRank() { return rank; } + /** + * Any feature can have multiple values for any particular property type - + * these are ordered in a list using rank, counting from zero. For + * properties that are single-valued rather than multi-valued, the + * default 0 value should be used. + * @param rank + */ public void setRank(int rank) { this.rank = rank; diff --git a/uk/ac/sanger/artemis/chado/ChadoFeatureRelationship.java b/uk/ac/sanger/artemis/chado/ChadoFeatureRelationship.java index 520ecb0c9..a532d8f5c 100644 --- a/uk/ac/sanger/artemis/chado/ChadoFeatureRelationship.java +++ b/uk/ac/sanger/artemis/chado/ChadoFeatureRelationship.java @@ -24,6 +24,9 @@ package uk.ac.sanger.artemis.chado; +/** + * Representation of feature_relationship table. + */ public class ChadoFeatureRelationship { @@ -37,11 +40,21 @@ public class ChadoFeatureRelationship /** ordering of subject features */ public int rank; + /** + * Get the cv term for the relationship type between + * subject and object (e.g. part_of). + * @return cvterm + */ public Cvterm getCvterm() { return cvterm; } + /** + * Set the cv term for the relationship type between + * subject and object (e.g. part_of). + * @param cvterm + */ public void setCvterm(Cvterm cvterm) { this.cvterm = cvterm; @@ -65,11 +78,25 @@ public class ChadoFeatureRelationship this.object_id = object_id; } + /** + * The ordering of subject features with respect to the object + * feature may be important (for example, exon ordering on a transcript + * - not always derivable if you take trans spliced genes into consideration). + * rank is used to order these; starts from zero. + * @return rank the rank + */ public int getRank() { return rank; } + /** + * The ordering of subject features with respect to the object + * feature may be important (for example, exon ordering on a transcript + * - not always derivable if you take trans spliced genes into consideration). + * rank is used to order these; starts from zero. + * @param rank + */ public void setRank(int rank) { this.rank = rank; @@ -85,11 +112,19 @@ public class ChadoFeatureRelationship this.subject_id = subject_id; } + /** + * Additional notes/comments + * @return + */ public String getValue() { return value; } + /** + * Additional notes/comments + * @param value + */ public void setValue(String value) { this.value = value; diff --git a/uk/ac/sanger/artemis/chado/ChadoOrganism.java b/uk/ac/sanger/artemis/chado/ChadoOrganism.java index aeb13d9f5..328d245d3 100644 --- a/uk/ac/sanger/artemis/chado/ChadoOrganism.java +++ b/uk/ac/sanger/artemis/chado/ChadoOrganism.java @@ -95,7 +95,7 @@ public class ChadoOrganism return comment; } - public void setComment() + public void setComment(String comment) { this.comment = comment; } diff --git a/uk/ac/sanger/artemis/chado/JdbcDAO.java b/uk/ac/sanger/artemis/chado/JdbcDAO.java index bb48bab2b..516008823 100644 --- a/uk/ac/sanger/artemis/chado/JdbcDAO.java +++ b/uk/ac/sanger/artemis/chado/JdbcDAO.java @@ -171,7 +171,8 @@ public class JdbcDAO String sql = "SELECT timelastmodified, f.feature_id, object_id," + " fl.strand, fmin, fmax, uniquename, f.type_id," - + " fp.type_id AS prop_type_id, fp.value, fl.phase" + + " fp.type_id AS prop_type_id, fp.value, fl.phase," + + " f.organism_id, abbreviation, genus, species, common_name, comment" + " FROM " + schema + ".feature f" + " LEFT JOIN " + schema + ".feature_relationship fr ON " + "fr.subject_id=" + "f.feature_id" @@ -179,8 +180,10 @@ public class JdbcDAO + "fp.feature_id=" + "f.feature_id" + " LEFT JOIN " + schema + ".featureloc fl ON " + "f.feature_id=" + "fl.feature_id" + + " LEFT JOIN organism ON organism.organism_id=f.organism_id" + " WHERE "; + if(uniquename != null) sql = sql + "uniquename LIKE '" + uniquename +"'"; @@ -213,6 +216,7 @@ public class JdbcDAO feature.setCvterm(new Cvterm()); feature.getCvterm().setId( rs.getLong("type_id") ); + // feature properties ChadoFeatureProp featureprop = new ChadoFeatureProp(); Cvterm cvterm = new Cvterm(); cvterm.setId(rs.getLong("prop_type_id")); @@ -226,10 +230,21 @@ public class JdbcDAO feature.setTimelastmodified( rs.getTimestamp("timelastmodified") ); feature.setId( rs.getInt("feature_id") ); + // feature relationship ChadoFeatureRelationship feature_relationship = new ChadoFeatureRelationship(); feature_relationship.setObject_id( rs.getInt("object_id") ); feature.setFeature_relationship(feature_relationship); + // feature organism + ChadoOrganism organism = new ChadoOrganism(); + organism.setAbbreviation(rs.getString("abbreviation")); + organism.setComment(rs.getString("comment")); + organism.setCommon_name(rs.getString("common_name")); + organism.setGenus(rs.getString("genus")); + organism.setId(rs.getInt("organism_id")); + organism.setSpecies(rs.getString("species")); + feature.setOrganism(organism); + list.add(feature); } // merge same features in the list @@ -494,7 +509,7 @@ public class JdbcDAO "LEFT JOIN cvterm ON s.type_id=cvterm_id"; if(uniquename != null) - sql = sql + "WHERE uniquename='"+uniquename+"'"; + sql = sql + " WHERE uniquename='"+uniquename+"'"; appendToLogFile(sql, sqlLog); Statement st = conn.createStatement(); diff --git a/uk/ac/sanger/artemis/util/DatabaseDocument.java b/uk/ac/sanger/artemis/util/DatabaseDocument.java index dd3de5b68..cb7fa71ca 100644 --- a/uk/ac/sanger/artemis/util/DatabaseDocument.java +++ b/uk/ac/sanger/artemis/util/DatabaseDocument.java @@ -27,6 +27,7 @@ package uk.ac.sanger.artemis.util; import com.ibatis.sqlmap.client.SqlMapClient; import uk.ac.sanger.artemis.io.GFFStreamFeature; import uk.ac.sanger.artemis.chado.*; +import uk.ac.sanger.artemis.components.DatabaseEntrySource; import java.sql.*; @@ -916,14 +917,19 @@ public class DatabaseDocument extends Document { try { - DbSqlConfig.init(new JPasswordField()); - SqlMapClient sqlMap = DbSqlConfig.getSqlMapInstance(); - - ChadoFeature feature = new ChadoFeature(); - feature.setUniquename(args[0]); - feature.setSchema(args[1]); - - List featureList = sqlMap.queryForList("getFeature", feature); + ChadoDAO dao; + DatabaseEntrySource src = new DatabaseEntrySource(); + src.setLocation(true); + + if(System.getProperty("ibatis") == null) + dao = new JdbcDAO(src.getLocation(), src.getPfield()); + else + dao = new IBatisDAO(src.getPfield()); + + ChadoFeature feature; + List schemas = new Vector(); + schemas.add(args[1]); + List featureList = dao.getFeature(args[0], schemas); System.out.println("FINISHED getFeature()"); for(int i = 0; i < featureList.size(); i++) { @@ -947,5 +953,10 @@ public class DatabaseDocument extends Document { sqle.printStackTrace(); } + catch(ConnectException e) + { + // TODO Auto-generated catch block + e.printStackTrace(); + } } } -- GitLab