From c7db7e64ee23405d07ec7acec082af48066d2648 Mon Sep 17 00:00:00 2001
From: tjc <tjc@ee4ac58c-ac51-4696-9907-e4b3aa274f04>
Date: Tue, 22 Mar 2011 16:23:03 +0000
Subject: [PATCH] add with/from to controlled_curation

git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@15788 ee4ac58c-ac51-4696-9907-e4b3aa274f04
---
 .../sanger/artemis/util/DatabaseDocument.java | 50 +++++++++++++++----
 1 file changed, 39 insertions(+), 11 deletions(-)

diff --git a/uk/ac/sanger/artemis/util/DatabaseDocument.java b/uk/ac/sanger/artemis/util/DatabaseDocument.java
index 29dbfbbb3..8586421bb 100644
--- a/uk/ac/sanger/artemis/util/DatabaseDocument.java
+++ b/uk/ac/sanger/artemis/util/DatabaseDocument.java
@@ -1544,33 +1544,61 @@ public class DatabaseDocument extends Document
         attr_buff.append("db_xref="+ pub.getUniqueName());
         nfound_dbxref++;
       }
-      
-      if(featureCvTermDbXRefs != null &&
-              featureCvTermDbXRefs.size() > 0)
+
+      if(featureCvTermPubs != null &&
+          featureCvTermPubs.size() > 0)
       {
+        for(int i=0; i<featureCvTermPubs.size(); i++)
+        {
+          FeatureCvTermPub featureCvTermPub =
+            (FeatureCvTermPub)featureCvTermPubs.get(i);
+          
+          if(feature_cvterm.getFeatureCvTermId() != 
+            featureCvTermPub.getFeatureCvTerm().getFeatureCvTermId())
+            continue;
+          
+          if(nfound_dbxref == 0)
+            attr_buff.append("db_xref=");
+          else if(nfound_dbxref > 0)
+            attr_buff.append("|");
+
+          attr_buff.append(featureCvTermPub.getPub().getUniqueName());
+          nfound_dbxref++;
+        }
+      }
+      if(nfound_dbxref > 0)
+        attr_buff.append("%3B");
+
+      if(featureCvTermDbXRefs != null &&
+          featureCvTermDbXRefs.size() > 0 )
+      {  
+        int nfound = 0;
         for(int i=0; i<featureCvTermDbXRefs.size(); i++)
         {
           FeatureCvTermDbXRef featureCvTermDbXRef =
             (FeatureCvTermDbXRef)featureCvTermDbXRefs.get(i);
-    
+            
           if(feature_cvterm.getFeatureCvTermId() != 
             featureCvTermDbXRef.getFeatureCvTerm().getFeatureCvTermId())
+          {
             continue;
-      
-          if(nfound_dbxref == 0)
-            attr_buff.append("db_xref=");
-          else if(nfound_dbxref > 0)
+          }
+          
+          if(nfound == 0)
+            attr_buff.append("with=");
+          else if(nfound > 0)
             attr_buff.append("|");
           
           DbXRef fc_dbXRef = featureCvTermDbXRef.getDbXRef();
           attr_buff.append(fc_dbXRef.getDb().getName()+":");
           attr_buff.append(fc_dbXRef.getAccession());
-          nfound_dbxref++;
+          nfound++;
         }
+        
+        if(nfound > 0)
+          attr_buff.append("%3B");
       }
       
-      if(nfound_dbxref > 0)
-        attr_buff.append("%3B");
       
       List feature_cvtermprops = (List) feature_cvterm.getFeatureCvTermProps();
       for(int i = 0; i < feature_cvtermprops.size(); i++)
-- 
GitLab