From 679f6e5870b31ef923053c314009df5d95774887 Mon Sep 17 00:00:00 2001
From: tjc <tjc@ee4ac58c-ac51-4696-9907-e4b3aa274f04>
Date: Mon, 17 Nov 2008 13:48:09 +0000
Subject: [PATCH] add getOrganismsContainingSrcFeatures

git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@9367 ee4ac58c-ac51-4696-9907-e4b3aa274f04
---
 uk/ac/sanger/artemis/chado/GmodDAO.java   |  1 +
 uk/ac/sanger/artemis/chado/IBatisDAO.java | 24 +++++++++++++++++++----
 uk/ac/sanger/artemis/chado/JdbcDAO.java   |  5 +++++
 3 files changed, 26 insertions(+), 4 deletions(-)

diff --git a/uk/ac/sanger/artemis/chado/GmodDAO.java b/uk/ac/sanger/artemis/chado/GmodDAO.java
index 2aca30748..69e733f19 100644
--- a/uk/ac/sanger/artemis/chado/GmodDAO.java
+++ b/uk/ac/sanger/artemis/chado/GmodDAO.java
@@ -49,6 +49,7 @@ public abstract class GmodDAO
        implements SequenceDaoI, SchemaDaoI, OrganismDaoI, CvDaoI, PubDaoI, GeneralDaoI
 {
   
+  public abstract List getOrganismsContainingSrcFeatures();
   public abstract List getSimilarityMatchesByFeatureIds(final List featureIds);
   public abstract List getSimilarityMatches(final Integer srcFeatureId);
   public abstract List getClustersByFeatureIds(final List featureIds);
diff --git a/uk/ac/sanger/artemis/chado/IBatisDAO.java b/uk/ac/sanger/artemis/chado/IBatisDAO.java
index c097c5476..1c2e2db46 100644
--- a/uk/ac/sanger/artemis/chado/IBatisDAO.java
+++ b/uk/ac/sanger/artemis/chado/IBatisDAO.java
@@ -118,7 +118,12 @@ public class IBatisDAO extends GmodDAO
   
   public List getResidueFeatures(final Integer organismId)
   {
-    return sqlMap.queryForList("getResidueFeatures",organismId);
+
+    CvTerm cvTerm = getCvTermByNameAndCvName("top_level_seq", "genedb_misc");
+    if(cvTerm  != null)
+      return sqlMap.queryForList("getTopLevelFeatures",organismId);
+    else
+      return sqlMap.queryForList("getResidueFeatures",organismId);
   }
   
   public List getResidueFeaturesByOrganismCommonName(final String commonName)
@@ -492,8 +497,6 @@ public class IBatisDAO extends GmodDAO
   
   /**
    * Return a list of top-level features 
-   * 
-   *  
    * @return a (possibly empty) List<Feature> of children
    */
   public List getTopLevelFeatures()
@@ -570,9 +573,22 @@ public class IBatisDAO extends GmodDAO
    */
   public List getResidueFeatures()
   { 
-    return sqlMap.queryForList("getResidueFeatures",null);
+    CvTerm cvTerm = getCvTermByNameAndCvName("top_level_seq", "genedb_misc");
+    if(cvTerm  != null)
+      return sqlMap.queryForList("getTopLevelFeatures",null);
+    else
+      return sqlMap.queryForList("getResidueFeatures",null);
   }
 
+  public List getOrganismsContainingSrcFeatures()
+  {
+    CvTerm cvTerm = getCvTermByNameAndCvName("top_level_seq", "genedb_misc");
+    if(cvTerm  != null)
+      return sqlMap.queryForList("getTopLevelOrganisms", null);
+    else  
+      return sqlMap.queryForList("getOrganismsContainingSrcFeatures", null);
+  }
+  
   /**
    *
    * For a schema return the type_id's with residues.
diff --git a/uk/ac/sanger/artemis/chado/JdbcDAO.java b/uk/ac/sanger/artemis/chado/JdbcDAO.java
index 27c549cc9..2d7c4d05e 100644
--- a/uk/ac/sanger/artemis/chado/JdbcDAO.java
+++ b/uk/ac/sanger/artemis/chado/JdbcDAO.java
@@ -101,6 +101,11 @@ public class JdbcDAO extends GmodDAO
   //////
   //////
   
+  public List getOrganismsContainingSrcFeatures()
+  {
+    return null;
+  }
+  
   public Feature getLazyFeatureNoResiduesById(final Integer featureId)
   {
     return null;
-- 
GitLab