From 69f13ce0a671255ed13412fe00e0755a1d6b9a99 Mon Sep 17 00:00:00 2001
From: tjc <tjc@ee4ac58c-ac51-4696-9907-e4b3aa274f04>
Date: Mon, 17 Nov 2008 13:50:28 +0000
Subject: [PATCH] add getTopLevelFeatures

git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@9370 ee4ac58c-ac51-4696-9907-e4b3aa274f04
---
 artemis_sqlmap/Feature.xml | 43 +++++++++++++++++++++++++-------------
 1 file changed, 29 insertions(+), 14 deletions(-)

diff --git a/artemis_sqlmap/Feature.xml b/artemis_sqlmap/Feature.xml
index e6b1caed6..e71d256ef 100644
--- a/artemis_sqlmap/Feature.xml
+++ b/artemis_sqlmap/Feature.xml
@@ -146,14 +146,12 @@
   </resultMap>
 	
   <resultMap id="map-feature-with-residues-result" class="Feature">
-    <result property="name" column="name"/>
     <result property="uniqueName" column="uniquename"/>
     <result property="featureId" column="feature_id"/>
     <result property="cvTerm.cvTermId" column="type_id"/>
     <result property="cvTerm.name" column="cvterm_name"/>  
 	<!--<result property="cvTerm" column="type_id" select="getCvtermByCvTermId" />-->
 	<result property="organism.organismId" column="organism_id"/>
-	<result property="organism.abbreviation" column="abbreviation"/>
 	<result property="organism.genus" column="genus"/>
 	<result property="organism.species" column="species"/>
     <result property="organism.commonName" column="common_name"/>
@@ -440,34 +438,51 @@
 	  residues notnull AND residues NOT LIKE '' ORDER BY common_name
   </select>
   -->
-	
-  
+
+  <sql id="source_feature_cvterm_names">
+	  cvterm.name LIKE '%chromosome%' OR cvterm.name LIKE '%sequence%' OR 
+	    cvterm.name IN ('supercontig', 'ultra_scaffold', 'golden_path_region', 'contig')
+  </sql>
   <select id="getResidueFeatures" parameterClass="java.lang.Integer"
             resultMap="map-feature-with-residues-result">
-	SELECT feature.name, uniquename, feature_id, type_id, feature.organism_id, 
-	       abbreviation, genus, species, common_name, cvterm.name AS cvterm_name 
+	SELECT uniquename, feature_id, type_id, feature.organism_id, 
+	       genus, species, common_name, cvterm.name AS cvterm_name 
 	FROM cvterm 
 	LEFT JOIN feature ON cvterm.cvterm_id=feature.type_id 
 	LEFT JOIN organism ON organism.organism_id=feature.organism_id 
 	WHERE <isNotNull> feature.organism_id=$value$ AND </isNotNull>
 	  residues notnull AND residues != '' AND
-	  ( cvterm.name LIKE '%chromosome%' OR cvterm.name LIKE '%sequence%' OR 
-	    cvterm.name IN ('supercontig', 'ultra_scaffold', 'golden_path_region', 'contig') ) 
-	ORDER BY common_name
+	  ( <include refid="source_feature_cvterm_names"/> ) 
+	ORDER BY common_name, uniquename
+  </select>
+
+		
+  <select id="getTopLevelFeatures" parameterClass="java.lang.Integer"
+            resultMap="map-feature-with-residues-result">
+	SELECT feature.name, uniquename, feature_id, feature.type_id, feature.organism_id, 
+	       genus, species, common_name, cvterm.name AS cvterm_name  
+	FROM feature 
+	JOIN organism using (organism_id) 
+	JOIN cvterm on feature.type_id = cvterm.cvterm_id 
+	JOIN featureprop using (feature_id) 
+	WHERE  <isNotNull> feature.organism_id=$value$ AND </isNotNull>
+	  featureprop.type_id in (
+	  SELECT cvterm_id FROM cvterm JOIN cv using (cv_id) WHERE cv.name = 'genedb_misc' AND cvterm.name = 'top_level_seq' )
+	  ORDER BY common_name, uniquename
   </select>
 	
+	
   <select id="getResidueFeaturesByOrganismCommonName" parameterClass="java.lang.String"
             resultMap="map-feature-with-residues-result">
-    SELECT feature.name, uniquename, feature_id, type_id, 
-	       feature.organism_id, abbreviation, genus, species, common_name
+    SELECT uniquename, feature_id, type_id, 
+	       feature.organism_id, genus, species, common_name
 	FROM cvterm 
 	LEFT JOIN feature ON cvterm.cvterm_id=feature.type_id 
 	LEFT JOIN organism ON organism.organism_id=feature.organism_id 
 	WHERE <isNotNull> organism.common_name=#value# AND </isNotNull>
 	  residues notnull AND residues != '' AND
-	  ( cvterm.name LIKE '%chromosome%' OR cvterm.name LIKE '%sequence%' OR 
-	    cvterm.name IN ('supercontig', 'ultra_scaffold', 'golden_path_region', 'contig') ) 
-	ORDER BY common_name	  
+	  ( <include refid="source_feature_cvterm_names"/> ) 
+	ORDER BY common_name, uniquename
   </select>
   
 		
-- 
GitLab