From 95a8a1bcfd2bc3e98e779ddc0b703fd49195d4ea Mon Sep 17 00:00:00 2001
From: tjc <tjc@ee4ac58c-ac51-4696-9907-e4b3aa274f04>
Date: Fri, 1 Sep 2006 09:27:53 +0000
Subject: [PATCH] rename some chado table objects

git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@4680 ee4ac58c-ac51-4696-9907-e4b3aa274f04
---
 artemis_sqlmap/Cvterm.xml                     |  13 +-
 artemis_sqlmap/Dbxref.xml                     |  48 +++---
 artemis_sqlmap/Feature.xml                    |  86 +++++-----
 artemis_sqlmap/Synonym.xml                    |  20 +--
 uk/ac/sanger/artemis/chado/ChadoDAO.java      |   8 +-
 uk/ac/sanger/artemis/chado/ChadoDemo.java     |  24 +--
 .../artemis/chado/ChadoTransaction.java       |   3 -
 .../chado/ChadoTransactionManager.java        | 106 ++++++-------
 .../chado/{Cvterm.java => CvTerm.java}        |  24 +--
 .../chado/{Dbxref.java => DbXRef.java}        |  12 +-
 uk/ac/sanger/artemis/chado/Feature.java       | 101 ++++++------
 ...{FeatureDbxref.java => FeatureDbXRef.java} |  27 ++--
 uk/ac/sanger/artemis/chado/FeatureProp.java   |  14 +-
 .../artemis/chado/FeatureRelationship.java    |  14 +-
 uk/ac/sanger/artemis/chado/IBatisDAO.java     |  87 +++++-----
 uk/ac/sanger/artemis/chado/JdbcDAO.java       | 150 +++++++++---------
 uk/ac/sanger/artemis/chado/Synonym.java       |  10 +-
 .../genebuilder/GeneViewerPanel.java          |  17 +-
 .../sanger/artemis/util/DatabaseDocument.java |  81 +++++-----
 19 files changed, 426 insertions(+), 419 deletions(-)
 rename uk/ac/sanger/artemis/chado/{Cvterm.java => CvTerm.java} (89%)
 rename uk/ac/sanger/artemis/chado/{Dbxref.java => DbXRef.java} (90%)
 rename uk/ac/sanger/artemis/chado/{FeatureDbxref.java => FeatureDbXRef.java} (79%)

diff --git a/artemis_sqlmap/Cvterm.xml b/artemis_sqlmap/Cvterm.xml
index 0fe20fb9b..09344b66c 100644
--- a/artemis_sqlmap/Cvterm.xml
+++ b/artemis_sqlmap/Cvterm.xml
@@ -6,18 +6,21 @@
  
 
 <sqlMap namespace="Cvterm"> 
+
+    <typeAlias alias="CvTerm"
+        type="uk.ac.sanger.artemis.chado.CvTerm"/>
  
-    <resultMap id="select-cvterm-names-result" class="uk.ac.sanger.artemis.chado.Cvterm">
-   	  <result property="cvtermId" column="cvterm_id"/>
+    <resultMap id="select-cvterm-names-result" class="CvTerm">
+   	  <result property="cvTermId" column="cvterm_id"/>
   	  <result property="name" column="cvterm_name"/>
       <result property="cv.name" column="cv_name"/>
     </resultMap>
     
-    <resultMap id="lazy-cvterm" class="uk.ac.sanger.artemis.chado.Cvterm">
-   	  <result property="cvtermId" column="cvterm_id"/>
+    <resultMap id="lazy-cvterm" class="CvTerm">
+   	  <result property="cvTermId" column="cvterm_id"/>
   	  <result property="name" column="name"/>
       <result property="definition" column="definition"/>
-      <result property="dbxref" column="dbxref_id" select="selectDbxref"/>
+      <result property="dbXRef" column="dbxref_id" select="selectDbXRef"/>
       <result property="isObsolete" column="is_obsolete"/>
       <result property="isRelationshiptype" column="is_relationshiptype"/>
     </resultMap>
diff --git a/artemis_sqlmap/Dbxref.xml b/artemis_sqlmap/Dbxref.xml
index 435a4d09b..1638e050f 100644
--- a/artemis_sqlmap/Dbxref.xml
+++ b/artemis_sqlmap/Dbxref.xml
@@ -5,26 +5,26 @@
     "http://ibatis.apache.org/dtd/sql-map-2.dtd"> 
  
 
-<sqlMap namespace="Dbxref"> 
+<sqlMap namespace="DbXRef"> 
  
-  <typeAlias alias="FeatureDbxref"
-        type="uk.ac.sanger.artemis.chado.FeatureDbxref"/>
+  <typeAlias alias="FeatureDbXRef"
+        type="uk.ac.sanger.artemis.chado.FeatureDbXRef"/>
   
-  <typeAlias alias="Dbxref"
-        type="uk.ac.sanger.artemis.chado.Dbxref"/>
+  <typeAlias alias="DbXRef"
+        type="uk.ac.sanger.artemis.chado.DbXRef"/>
   
     <typeAlias alias="Db"
         type="uk.ac.sanger.artemis.chado.Db"/>
            
   <resultMap id="select-feature-dbxref" 
-               class="FeatureDbxref">
+               class="FeatureDbXRef">
     <result property="feature.id"       column="feature_id"/>
-    <result property="dbxref.db.name"   column="name"/>
-    <result property="dbxref.accession" column="accession"/>
-    <result property="dbxref.version"   column="version"/>
+    <result property="dbXRef.db.name"   column="name"/>
+    <result property="dbXRef.accession" column="accession"/>
+    <result property="dbXRef.version"   column="version"/>
   </resultMap>
         
-  <select id="getFeatureDbxref" 
+  <select id="getFeatureDbXRef" 
           parameterClass="uk.ac.sanger.artemis.chado.Feature"
           resultMap="select-feature-dbxref">
    	SELECT db.name, dbx.accession, dbx.version, dbx_f.feature_id
@@ -32,8 +32,8 @@
         LEFT JOIN dbxref dbx ON dbx.dbxref_id=dbx_f.dbxref_id
         LEFT JOIN db ON db.db_id=dbx.db_id 
         LEFT JOIN feature f ON dbx_f.feature_id=f.feature_id
-        <isNotNull property="uniquename"> 
-          WHERE f.uniquename=#uniquename#
+        <isNotNull property="uniqueName"> 
+          WHERE f.uniquename=#uniqueName#
         </isNotNull>
         <isGreaterThan property="id" compareValue="0">
           WHERE dbx_f.feature_id=$id$
@@ -46,40 +46,40 @@
     SELECT db_id FROM db WHERE name=#name#
   </select>
   
-  <select id="getDbxrefId" parameterClass="Dbxref"
+  <select id="getDbXRefId" parameterClass="DbXRef"
                            resultClass="java.lang.Integer">
     SELECT dbxref_id FROM dbxref WHERE accession=#accession#
-           AND db_id=$db_id$;
+           AND db_id=$dbXRefId$;
   </select>
   
   
   
-  <select id="selectDbxref" resultClass="Dbxref">
-    SELECT * FROM dbxref WHERE dbxref_id=$dbxref_id$
+  <select id="selectDbXRef" resultClass="DbXRef">
+    SELECT * FROM dbxref WHERE dbxref_id=$dbXRefId$
   </select>
   
   
   
   <!-- WRITE BACK -->
-  <delete id="deleteFeatureDbxref" parameterClass="FeatureDbxref">
+  <delete id="deleteFeatureDbXRef" parameterClass="FeatureDbXRef">
      DELETE FROM feature_dbxref 
      WHERE dbxref_id=
-           (SELECT dbxref_id FROM dbxref WHERE accession=#dbxref.accession#
-            AND db_id=(SELECT db_id FROM db WHERE name=#dbxref.db.name#))
+           (SELECT dbxref_id FROM dbxref WHERE accession=#dbXRef.accession#
+            AND db_id=(SELECT db_id FROM db WHERE name=#dbXRef.db.name#))
      AND feature_id=
-           (SELECT feature_id FROM feature WHERE uniquename=#feature.uniquename#)
+           (SELECT feature_id FROM feature WHERE uniquename=#feature.uniqueName#)
   </delete>
   
-  <insert id="insertFeatureDbxref" parameterClass="FeatureDbxref">
+  <insert id="insertFeatureDbXRef" parameterClass="FeatureDbXRef">
     INSERT INTO feature_dbxref 
            (feature_id, dbxref_id, is_current)
            VALUES
-           ($feature.id$, $dbxref_id$, $current$)
+           ($feature.id$, $dbXRef.dbXRefId$, $current$)
   </insert>
   
-  <insert id="insertDbxref" parameterClass="Dbxref">
+  <insert id="insertDbXRef" parameterClass="DbXRef">
     INSERT INTO dbxref ( db_id, accession ) 
-           VALUES ($db_id$, #accession#)
+           VALUES ($dbXRefId$, #accession#)
   </insert>
 
 </sqlMap> 
diff --git a/artemis_sqlmap/Feature.xml b/artemis_sqlmap/Feature.xml
index 89c416c3b..726052cbe 100644
--- a/artemis_sqlmap/Feature.xml
+++ b/artemis_sqlmap/Feature.xml
@@ -22,7 +22,7 @@
     <parameterMap id="schema-cvlist" 
                   class="Feature">
        <parameter property="schema" javaType="java.lang.String"/>
-       <parameter property="featureCvterms" javaType="java.util.List"/>
+       <parameter property="featureCvTerms" javaType="java.util.List"/>
     </parameterMap> 
 
     <resultMap id="select-feature" 
@@ -30,15 +30,15 @@
         <result property="timelastmodified" column="timelastmodified"/>
    	    <result property="id" column="id"/>
   	    <result property="feature_relationship.object.id" column="object_id"/>
-  	    <result property="feature_relationship.cvterm.cvtermId" column="relation_type_id"/>
+  	    <result property="feature_relationship.cvTerm.cvTermId" column="relation_type_id"/>
   	    <result property="feature_relationship.rank" column="rank"/>
         <result property="featureloc.strand" column="strand" nullValue="0"/>
         <result property="featureloc.fmin" column="fmin" nullValue="-1"/>
         <result property="featureloc.fmax" column="fmax" nullValue="0"/>
         <result property="featureloc.phase" column="phase" nullValue="10"/>
-        <result property="uniquename" column="uniquename"/>
-        <result property="cvterm.cvtermId" column="type_id"/>
-        <result property="featureprop.cvterm.cvtermId" column="prop_type_id" nullValue="0"/>
+        <result property="uniqueName" column="uniquename"/>
+        <result property="cvTerm.cvTermId" column="type_id"/>
+        <result property="featureprop.cvTerm.cvTermId" column="prop_type_id" nullValue="0"/>
         <result property="featureprop.value" column="value"/>
         <result property="featureprop.rank" column="prop_rank" nullValue="0"/>
      </resultMap>
@@ -49,22 +49,22 @@
                class="Feature">       
         <result property="timelastmodified" column="timelastmodified"/>
    	    <result property="id" column="id"/>
-        <result property="uniquename" column="uniquename"/>
+        <result property="uniqueName" column="uniquename"/>
         <result property="name" column="name"/>
         <result property="length" column="length" nullValue="-999" />
         <result property="residues" column="residues" />
-        <result property="cvterm" column="type_id" select="selectCvterm" />
+        <result property="cvTerm" column="type_id" select="selectCvterm" />
         <result property="featurelocsForFeatureId" column="{id=id}" 
                                                    select="getFeatureLoc" />
         <result property="featurepropList" column="{feature_id=id}" 
                                            select="selectFeatureProp" />
-        <result property="featureDbxrefs" column="{id=id}"
-                                          select="getFeatureDbxref" />
+        <result property="featureDbXRefs" column="{id=id}"
+                                          select="getFeatureDbXRef" />
         <result property="featureRelationshipsForObjectId" column="{object_id=id}" 
                                            select="getFeatureRelationship" />  
         <result property="featureRelationshipsForSubjectId" column="{subject_id=id}" 
                                            select="getFeatureRelationship" /> 
-        <result property="featureSynonymsForFeatureId" column="{feature.uniquename=uniquename}" 
+        <result property="featureSynonymsForFeatureId" column="{feature.uniqueName=uniqueName}" 
                                            select="getLazyFeatureSynonymsByUniquename" />                          
         <result property="organism" column="organism_id" select="getOrganism" />
      </resultMap>
@@ -74,16 +74,16 @@
                 class="Feature">
         <result property="organism.abbreviation" column="abbreviation"/>
         <result property="name" column="name"/>
-        <result property="uniquename" column="uniquename"/>
+        <result property="uniqueName" column="uniquename"/>
         <result property="id" column="feature_id"/>
-        <result property="cvterm.cvtermId" column="type_id"/>
+        <result property="cvTerm.cvTermId" column="type_id"/>
      </resultMap>
 
      <resultMap id="select-featureprop" 
                 class="FeatureProp">
         <result property="value" column="value" />
         <result property="rank" column="rank" />
-        <result property="cvterm" column="type_id" select="selectCvterm" />
+        <result property="cvTerm" column="type_id" select="selectCvterm" />
      </resultMap>
      
      <resultMap id="select-relationship" 
@@ -92,7 +92,7 @@
         <result property="object.id" column="object_id" />
         <result property="value" column="value" />
         <result property="rank" column="rank" />
-        <result property="cvterm" column="type_id" select="selectCvterm" />
+        <result property="cvTerm" column="type_id" select="selectCvterm" />
      </resultMap>
      
      <resultMap id="select-location"
@@ -168,8 +168,8 @@
              <isGreaterThan property="featureloc.srcfeature_id" compareValue="0"> 
                srcfeature_id=$featureloc.srcfeature_id$ 
              </isGreaterThan>
-             <isNotNull property="uniquename">                        
-               uniquename LIKE #uniquename# 
+             <isNotNull property="uniqueName">                        
+               uniquename LIKE #uniqueName# 
              </isNotNull>
            </dynamic>    
         ORDER BY f.type_id,  uniquename
@@ -193,17 +193,17 @@
             f.feature_id=$id$ AND
           </isGreaterThan>
           
-          <isNotNull property="uniquename">                                 
+          <isNotNull property="uniqueName">                                 
             <isNotNull property="featureSynonymsForFeatureId">
               <iterate property="featureSynonymsForFeatureId" conjunction="OR" open="(" close=") OR">
                f.feature_id=#featureSynonymsForFeatureId[].feature.id#
              </iterate>
             </isNotNull>
-            uniquename LIKE #uniquename# OR name LIKE #uniquename# AND              
+            uniquename LIKE #uniqueName# OR name LIKE #uniqueName# AND              
           </isNotNull>
           
-          <isGreaterThan property="cvterm.cvtermId" compareValue="0"> 
-            feature.type_id=$cvterm.cvtermId$ AND
+          <isGreaterThan property="cvTerm.cvTermId" compareValue="0"> 
+            feature.type_id=$cvTerm.cvTermId$ AND
           </isGreaterThan>
        </dynamic>
          f.feature_id > 0 
@@ -233,8 +233,8 @@
        FROM organism, $schema$.feature WHERE
          organism.organism_id=$schema$.feature.organism_id AND
          residues notnull
-         <iterate prepend="AND" property="featureCvterms" conjunction="OR" open="(" close=")">
-           type_id=#featureCvterms[]#
+         <iterate prepend="AND" property="featureCvTerms" conjunction="OR" open="(" close=")">
+           type_id=#featureCvTerms[]#
          </iterate>
        ORDER BY abbreviation
     </select>
@@ -261,17 +261,17 @@
       UPDATE featureloc
       SET fmin=$fmin$, fmax=$fmax$, rank=$rank$, strand=$strand$, phase=$phase$
       WHERE 
-      <isNotNull property="feature.uniquename">
-        feature_id=(SELECT feature_id FROM feature WHERE uniquename=#feature.uniquename#)
+      <isNotNull property="feature.uniqueName">
+        feature_id=(SELECT feature_id FROM feature WHERE uniquename=#feature.uniqueName#)
       </isNotNull>
     </update>
     
     <update id="updateFeature"
             parameterClass="Feature">
       UPDATE feature
-      SET uniquename=#uniquename#
-      <isNotNull property="cvterm.cvtermId">
-        , type_id=$cvterm.cvtermId$
+      SET uniquename=#uniqueName#
+      <isNotNull property="cvTerm.cvTermId">
+        , type_id=$cvTerm.cvTermId$
       </isNotNull>
       <isNotNull property="timelastmodified">
         , timelastmodified=#timelastmodified#
@@ -283,19 +283,19 @@
             parameterClass="FeatureProp">
       UPDATE featureprop
       SET value=#value#   
-      WHERE rank=$rank$ AND type_id=$cvterm.cvtermId$ AND 
-            feature_id=(SELECT feature_id FROM feature WHERE uniquename=#feature.uniquename#)
+      WHERE rank=$rank$ AND type_id=$cvTerm.cvTermId$ AND 
+            feature_id=(SELECT feature_id FROM feature WHERE uniquename=#feature.uniqueName#)
     </update>
     
     <update id="updateFeatureRelationshipsForSubjectId" 
            parameterClass="FeatureRelationship">
       UPDATE feature_relationship
       SET
-        rank=$rank$, type_id=$cvterm.cvtermId$
+        rank=$rank$, type_id=$cvTerm.cvTermId$
       WHERE subject_id=
-           ( SELECT feature_id FROM feature WHERE uniquename=#subject.uniquename# )
+           ( SELECT feature_id FROM feature WHERE uniquename=#subject.uniqueName# )
       AND   object_id=
-           ( SELECT feature_id FROM feature WHERE uniquename=#object.uniquename# )
+           ( SELECT feature_id FROM feature WHERE uniquename=#object.uniqueName# )
    </update>
     
     <!--  INSERT  -->
@@ -304,8 +304,8 @@
       INSERT INTO featureprop
       ( feature_id, type_id, value, rank )
       VALUES
-      ( (SELECT feature_id FROM feature WHERE uniquename=#feature.uniquename#),
-        $cvterm.cvtermId$, #value#, $rank$ )
+      ( (SELECT feature_id FROM feature WHERE uniquename=#feature.uniqueName#),
+        $cvTerm.cvTermId$, #value#, $rank$ )
     </insert>
 
     <insert id="insertFeature" 
@@ -316,8 +316,8 @@
         ( nextval('feature_feature_id_seq'),
           $organism.id$,
           #name#,
-          #uniquename#,
-          $cvterm.cvtermId$ )
+          #uniqueName#,
+          $cvTerm.cvTermId$ )
     </insert>
 
     <insert id="insertFeatureLoc" 
@@ -339,9 +339,9 @@
       INSERT INTO feature_relationship
         ( subject_id, object_id, type_id )
       VALUES
-        ( (SELECT feature_id FROM feature WHERE uniquename=#subject.uniquename#),
-          (SELECT feature_id FROM feature WHERE uniquename=#object.uniquename#),
-          $cvterm.cvtermId$ )
+        ( (SELECT feature_id FROM feature WHERE uniquename=#subject.uniqueName#),
+          (SELECT feature_id FROM feature WHERE uniquename=#object.uniqueName#),
+          $cvTerm.cvTermId$ )
    </insert>
    
 
@@ -351,9 +351,9 @@
            parameterClass="FeatureProp">
       DELETE FROM featureprop
       WHERE
-        <isNotNull property="feature.uniquename">
+        <isNotNull property="feature.uniqueName">
           feature_id=
-            (SELECT feature_id FROM feature WHERE uniquename=#feature.uniquename#)
+            (SELECT feature_id FROM feature WHERE uniquename=#feature.uniqueName#)
           AND
         </isNotNull>
         <isGreaterThan property="rank" compareValue="-1">
@@ -362,13 +362,13 @@
         <isNotNull property="value">
           value=#value# AND
         </isNotNull>
-        type_id=$cvterm.cvtermId$
+        type_id=$cvTerm.cvTermId$
    </delete>
    
    <delete id="deleteFeature" 
            parameterClass="Feature">
       DELETE FROM feature
-      WHERE uniquename=#uniquename#
+      WHERE uniquename=#uniqueName#
    </delete>
    
 
diff --git a/artemis_sqlmap/Synonym.xml b/artemis_sqlmap/Synonym.xml
index 0d73c2745..4e6d27363 100644
--- a/artemis_sqlmap/Synonym.xml
+++ b/artemis_sqlmap/Synonym.xml
@@ -23,7 +23,7 @@
    	    <result property="synonym.synonym_id" column="synonym_id"/>
    	    <result property="synonym.name" column="name"/>
    	    <result property="synonym.synonym_sgml" column="synonym_sgml"/>
-  	    <result property="synonym.cvterm.cvtermId" column="type_id" />
+  	    <result property="synonym.cvTerm.cvTermId" column="type_id" />
      </resultMap>
      
      <resultMap id="select-alias-part-lazy" 
@@ -50,7 +50,7 @@
         <result property="synonym_id" column="synonym_id"/>
    	    <result property="name" column="name"/>
    	    <result property="synonym_sgml" column="synonym_sgml"/>
-  	    <result property="cvterm" column="type_id" select="selectCvterm"/>
+  	    <result property="cvTerm" column="type_id" select="selectCvterm"/>
      </resultMap>
      
      
@@ -62,7 +62,7 @@
       FROM feature_synonym fs 
       LEFT JOIN feature f ON f.feature_id=fs.feature_id 
       LEFT JOIN synonym s ON fs.synonym_id=s.synonym_id 
-      <isNotNull property="uniquename">                        
+      <isNotNull property="uniqueName">                        
           WHERE uniquename=#uniquename#
       </isNotNull>
     </select>
@@ -72,8 +72,8 @@
       SELECT fs.* 
       FROM feature_synonym fs 
       LEFT JOIN feature f ON f.feature_id=fs.feature_id 
-      <isNotNull property="feature.uniquename">                        
-          WHERE uniquename=#feature.uniquename#
+      <isNotNull property="feature.uniqueName">                        
+          WHERE uniquename=#feature.uniqueName#
       </isNotNull>
     </select>
     
@@ -91,8 +91,8 @@
         <isNotNull property="name">
           name=#name# AND
         </isNotNull>
-        <isNotNull property="cvterm">
-          type_id=$cvterm.cvtermId$ AND
+        <isNotNull property="cvTerm">
+          type_id=$cvTerm.cvTermId$ AND
         </isNotNull> 
         synonym_id > 0
     </select>
@@ -108,13 +108,13 @@
       DELETE FROM feature_synonym WHERE
          synonym_id=$synonym_id$ AND 
          feature_id=(SELECT feature_id FROM feature WHERE  
-         uniquename=#feature.uniquename#)
+         uniquename=#feature.uniqueName#)
     </delete>
   
     <insert id="insertFeatureAlias" parameterClass="FeatureSynonym">
       INSERT INTO feature_synonym ( synonym_id, feature_id, pub_id )
       VALUES ( $synonym_id$ , 
-              (SELECT feature_id FROM feature WHERE uniquename=#feature.uniquename#), 
+              (SELECT feature_id FROM feature WHERE uniquename=#feature.uniqueName#), 
               1)
     </insert>
   
@@ -124,7 +124,7 @@
   
     <insert id="insertAlias" parameterClass="FeatureSynonym">
       INSERT INTO synonym ( name, type_id, synonym_sgml ) 
-      VALUES ( #synonym.name#, $synonym.cvterm.cvtermId$, #synonym.name# )
+      VALUES ( #synonym.name#, $synonym.cvTerm.cvTermId$, #synonym.name# )
     </insert>
   
 </sqlMap> 
\ No newline at end of file
diff --git a/uk/ac/sanger/artemis/chado/ChadoDAO.java b/uk/ac/sanger/artemis/chado/ChadoDAO.java
index fdcabc445..4e10aafb0 100644
--- a/uk/ac/sanger/artemis/chado/ChadoDAO.java
+++ b/uk/ac/sanger/artemis/chado/ChadoDAO.java
@@ -105,10 +105,10 @@ public interface ChadoDAO
   public List getSchema();
 
   /**
-   * Get the all the <code>Cvterm</code> objects as a<code>List</code>.
+   * Get the all the <code>CvTerm</code> objects as a<code>List</code>.
    * @return	the full list of cvterm_id and name
    */
-  public List getCvterm();
+  public List getCvTerm();
   
 
   /**
@@ -117,7 +117,7 @@ public interface ChadoDAO
    *                    all <code>FeatureDbxref</code> are returned.
    * @return a <code>List</code> of feature_dbxrefs.
    */
-  public List getFeatureDbxrefByUniquename(final String uniquename);
+  public List getFeatureDbXRefByUniquename(final String uniquename);
   
   /**
    * Return a list of FeatureSynonyms for a uniquename
@@ -134,7 +134,7 @@ public interface ChadoDAO
    * @param type the type of the Synonym
    * @return a Synonym, or null  
    */
-  public Synonym getSynonymByNameAndCvTerm(String name, Cvterm type);
+  public Synonym getSynonymByNameAndCvTerm(String name, CvTerm type);
   
   
   /**
diff --git a/uk/ac/sanger/artemis/chado/ChadoDemo.java b/uk/ac/sanger/artemis/chado/ChadoDemo.java
index 2dd5fe0a9..0348fa0b1 100644
--- a/uk/ac/sanger/artemis/chado/ChadoDemo.java
+++ b/uk/ac/sanger/artemis/chado/ChadoDemo.java
@@ -251,22 +251,22 @@ public class ChadoDemo
     int row = result_table.getSelectedRow();
     StringBuffer attr_buff = new StringBuffer();
     Feature chado_feature = (Feature)featureList.get(row);
-    List attributes = chado_feature.getFeaturepropList();
-    List dbxrefs    = chado_feature.getFeatureDbxrefs();
+    List attributes = (List)chado_feature.getFeaturepropList();
+    List dbxrefs    = (List)chado_feature.getFeatureDbXRefs();
 
     if(dbxrefs.size() > 0)
     {
       attr_buff.append("/Dbxref=");
       for(int i = 0; i < dbxrefs.size(); i++)
       {
-        FeatureDbxref dbxref = (FeatureDbxref) dbxrefs.get(i);
-        attr_buff.append(dbxref.getDbxref().getDb().getName() + ":"
-            + dbxref.getDbxref().getAccession() + "; ");
+        FeatureDbXRef dbxref = (FeatureDbXRef) dbxrefs.get(i);
+        attr_buff.append(dbxref.getDbXRef().getDb().getName() + ":"
+            + dbxref.getDbXRef().getAccession() + "; ");
       }
       attr_buff.append("\n");
     }
 
-    List synonyms = chado_feature.getFeatureSynonymsForFeatureId();
+    List synonyms = (List)chado_feature.getFeatureSynonymsForFeatureId();
 
     // append synonyms
     if(synonyms.size() > 0)
@@ -277,7 +277,7 @@ public class ChadoDemo
       {
         alias = (FeatureSynonym) synonyms.get(i);
         attr_buff.append("/");
-        attr_buff.append(alias.getSynonym().getCvterm().getName() + "=");
+        attr_buff.append(alias.getSynonym().getCvTerm().getName() + "=");
         attr_buff.append(alias.getSynonym().getName());
 
         attr_buff.append(";");
@@ -290,7 +290,7 @@ public class ChadoDemo
       {
         FeatureProp featprop = (FeatureProp) attributes.get(i);
 
-        attr_buff.append("/" + featprop.getCvterm().getName() + "="
+        attr_buff.append("/" + featprop.getCvTerm().getName() + "="
             + GFFStreamFeature.decode(featprop.getValue()) + "\n");
       }
 
@@ -332,7 +332,7 @@ public class ChadoDemo
       feature = (Feature) featureList.get(i);
       
       // assume only one featureloc
-      List locs = feature.getFeaturelocsForFeatureId();
+      List locs = (List)feature.getFeaturelocsForFeatureId();
       
       if(locs.size() > 0)
       {
@@ -348,10 +348,10 @@ public class ChadoDemo
       if(ind > 0)
         schema = schema.substring(0,ind)+schema.substring(ind+1);
       
-      System.out.println("get featur type_id.......");
+      System.out.println("get feature type_id.......");
       rowData[i][0] = schema;
-      rowData[i][1] = feature.getUniquename();
-      rowData[i][2] = feature.getCvterm().getName();
+      rowData[i][1] = feature.getUniqueName();
+      rowData[i][2] = feature.getCvTerm().getName();
       //rowData[i][2] = (String)cvterm.get(new Long(feature.getType_id()));
       rowData[i][3] = Integer.toString(feature.getId());
       rowData[i][6] = feature.getTimelastmodified().toString();
diff --git a/uk/ac/sanger/artemis/chado/ChadoTransaction.java b/uk/ac/sanger/artemis/chado/ChadoTransaction.java
index 2b1f8564d..f295226e2 100644
--- a/uk/ac/sanger/artemis/chado/ChadoTransaction.java
+++ b/uk/ac/sanger/artemis/chado/ChadoTransaction.java
@@ -24,9 +24,6 @@
 
 package uk.ac.sanger.artemis.chado;
 
-import java.util.List;
-import java.util.Vector;
-import java.util.StringTokenizer;
 import java.sql.Timestamp;
 
 import uk.ac.sanger.artemis.io.GFFStreamFeature;
diff --git a/uk/ac/sanger/artemis/chado/ChadoTransactionManager.java b/uk/ac/sanger/artemis/chado/ChadoTransactionManager.java
index b44abe55e..1fa1ff26b 100644
--- a/uk/ac/sanger/artemis/chado/ChadoTransactionManager.java
+++ b/uk/ac/sanger/artemis/chado/ChadoTransactionManager.java
@@ -382,7 +382,7 @@ public class ChadoTransactionManager
       
       uk.ac.sanger.artemis.chado.Feature chado_feature = 
                new uk.ac.sanger.artemis.chado.Feature();
-      chado_feature.setUniquename(seq_id);
+      chado_feature.setUniqueName(seq_id);
 
       List featureRelationshipsForSubjectId = null;
       if(qualifier_relation != null)
@@ -395,15 +395,15 @@ public class ChadoTransactionManager
         {
           uk.ac.sanger.artemis.chado.Feature parent =
               new uk.ac.sanger.artemis.chado.Feature();
-          parent.setUniquename((String)parents.get(i));
+          parent.setUniqueName((String)parents.get(i));
           FeatureRelationship feature_relationship =
               new FeatureRelationship();
-          Cvterm cvterm = new Cvterm();
-          cvterm.setCvtermId(DatabaseDocument.getCvtermID("part_of").longValue());
+          CvTerm cvterm = new CvTerm();
+          cvterm.setCvTermId(DatabaseDocument.getCvtermID("part_of").longValue());
           
           feature_relationship.setObject(parent);
           feature_relationship.setSubject(chado_feature);
-          feature_relationship.setCvterm(cvterm);
+          feature_relationship.setCvTerm(cvterm);
           feature_relationship.setRank(rank);
           featureRelationshipsForSubjectId.add(feature_relationship);
           
@@ -496,15 +496,15 @@ public class ChadoTransactionManager
         {
           uk.ac.sanger.artemis.chado.Feature parent =
               new uk.ac.sanger.artemis.chado.Feature();
-          parent.setUniquename((String)parents.get(i));
+          parent.setUniqueName((String)parents.get(i));
           FeatureRelationship feature_relationship =
               new FeatureRelationship();
-          Cvterm cvterm = new Cvterm();
-          cvterm.setCvtermId(DatabaseDocument.getCvtermID("part_of").longValue());
+          CvTerm cvterm = new CvTerm();
+          cvterm.setCvTermId(DatabaseDocument.getCvtermID("part_of").longValue());
           
           feature_relationship.setObject(parent);
           feature_relationship.setSubject(chado_feature);
-          feature_relationship.setCvterm(cvterm);
+          feature_relationship.setCvTerm(cvterm);
           featureRelationshipsForSubjectId.add(feature_relationship);
         }
       }
@@ -520,15 +520,15 @@ public class ChadoTransactionManager
         {
           uk.ac.sanger.artemis.chado.Feature parent =
                                       new uk.ac.sanger.artemis.chado.Feature();
-          parent.setUniquename((String) derives.get(i));
+          parent.setUniqueName((String) derives.get(i));
           FeatureRelationship feature_relationship = new FeatureRelationship();
-          Cvterm cvterm = new Cvterm();
-          cvterm.setCvtermId(DatabaseDocument.getCvtermID("derives_from")
+          CvTerm cvterm = new CvTerm();
+          cvterm.setCvTermId(DatabaseDocument.getCvtermID("derives_from")
               .longValue());
 
           feature_relationship.setObject(parent);
           feature_relationship.setSubject(chado_feature);
-          feature_relationship.setCvterm(cvterm);
+          feature_relationship.setCvTerm(cvterm);
           featureRelationshipsForSubjectId.add(feature_relationship);
         }
       }
@@ -544,14 +544,14 @@ public class ChadoTransactionManager
 
     featureloc.setFmin(feature.getRawFirstBase()-1);
     featureloc.setFmax(feature.getRawLastBase());
-    chado_feature.setUniquename(feature_uniquename);
+    chado_feature.setUniqueName(feature_uniquename);
     chado_feature.setName(feature_uniquename);
 
     String key = feature.getKey().toString();
     
-    Cvterm cvterm = new Cvterm();
-    cvterm.setCvtermId(DatabaseDocument.getCvtermID(key).longValue());
-    chado_feature.setCvterm(cvterm);
+    CvTerm cvterm = new CvTerm();
+    cvterm.setCvTermId(DatabaseDocument.getCvtermID(key).longValue());
+    chado_feature.setCvTerm(cvterm);
 
     addQualifiers(feature.getQualifiers(), chado_feature);
     // create transaction object
@@ -609,15 +609,15 @@ public class ChadoTransactionManager
         {
           uk.ac.sanger.artemis.chado.Feature parent =
               new uk.ac.sanger.artemis.chado.Feature();
-          parent.setUniquename((String)parents.get(i));
+          parent.setUniqueName((String)parents.get(i));
           FeatureRelationship feature_relationship =
               new FeatureRelationship();
-          Cvterm cvterm = new Cvterm();
-          cvterm.setCvtermId(DatabaseDocument.getCvtermID("part_of").longValue());
+          CvTerm cvterm = new CvTerm();
+          cvterm.setCvTermId(DatabaseDocument.getCvtermID("part_of").longValue());
           
           feature_relationship.setObject(parent);
           feature_relationship.setSubject(chado_feature);
-          feature_relationship.setCvterm(cvterm);
+          feature_relationship.setCvTerm(cvterm);
           featureRelationshipsForSubjectId.add(feature_relationship);
         }
       }
@@ -633,15 +633,15 @@ public class ChadoTransactionManager
         {
           uk.ac.sanger.artemis.chado.Feature parent =
                                       new uk.ac.sanger.artemis.chado.Feature();
-          parent.setUniquename((String) derives.get(i));
+          parent.setUniqueName((String) derives.get(i));
           FeatureRelationship feature_relationship = new FeatureRelationship();
-          Cvterm cvterm = new Cvterm();
-          cvterm.setCvtermId(DatabaseDocument.getCvtermID("derives_from")
+          CvTerm cvterm = new CvTerm();
+          cvterm.setCvTermId(DatabaseDocument.getCvtermID("derives_from")
               .longValue());
 
           feature_relationship.setObject(parent);
           feature_relationship.setSubject(chado_feature);
-          feature_relationship.setCvterm(cvterm);
+          feature_relationship.setCvTerm(cvterm);
           featureRelationshipsForSubjectId.add(feature_relationship);
         }
       }
@@ -652,14 +652,14 @@ public class ChadoTransactionManager
 
     featureloc.setFmin(segment.getRawRange().getStart()-1);
     featureloc.setFmax(segment.getRawRange().getEnd());
-    chado_feature.setUniquename(segment_uniquename);
+    chado_feature.setUniqueName(segment_uniquename);
     chado_feature.setName(segment_uniquename);
 
     String key = feature.getKey().toString();
     
-    Cvterm cvterm = new Cvterm();
-    cvterm.setCvtermId(DatabaseDocument.getCvtermID(key).longValue());
-    chado_feature.setCvterm(cvterm);
+    CvTerm cvterm = new CvTerm();
+    cvterm.setCvTermId(DatabaseDocument.getCvtermID(key).longValue());
+    chado_feature.setCvTerm(cvterm);
 
     //addQualifiers(feature.getQualifiers(), chado_feature);
     // create transaction object
@@ -678,7 +678,7 @@ public class ChadoTransactionManager
   {
     uk.ac.sanger.artemis.chado.Feature chado_feature = 
       new uk.ac.sanger.artemis.chado.Feature();
-    chado_feature.setUniquename(uniquename);
+    chado_feature.setUniqueName(uniquename);
     
     ChadoTransaction tsn = new ChadoTransaction(ChadoTransaction.DELETE,
         chado_feature,
@@ -798,11 +798,11 @@ public class ChadoTransactionManager
       {  
         uk.ac.sanger.artemis.chado.Feature chado_feature =
            new uk.ac.sanger.artemis.chado.Feature();
-        Cvterm cvterm = new Cvterm();
-        cvterm.setCvtermId( lcvterm_id.longValue() );
+        CvTerm cvterm = new CvTerm();
+        cvterm.setCvTermId( lcvterm_id.longValue() );
         
-        chado_feature.setCvterm(cvterm);
-        chado_feature.setUniquename(uniquename);
+        chado_feature.setCvTerm(cvterm);
+        chado_feature.setUniqueName(uniquename);
         
         tsn = new ChadoTransaction(ChadoTransaction.UPDATE,
             chado_feature,
@@ -1093,7 +1093,7 @@ public class ChadoTransactionManager
       uk.ac.sanger.artemis.chado.Feature chado_feature =
         new uk.ac.sanger.artemis.chado.Feature();
      
-      chado_feature.setUniquename((String)new_qualifier.getValues().get(0));
+      chado_feature.setUniqueName((String)new_qualifier.getValues().get(0));
      
       ChadoTransaction tsn = new ChadoTransaction(ChadoTransaction.UPDATE,
                 chado_feature,
@@ -1123,16 +1123,16 @@ public class ChadoTransactionManager
            System.out.println(uniquename+"  in handleReservedTags() DELETE db="+
                qualifier_string.substring(0,index)+" acc="+qualifier_string.substring(index+1));
          
-           FeatureDbxref old_dbxref = new FeatureDbxref();
+           FeatureDbXRef old_dbxref = new FeatureDbXRef();
            uk.ac.sanger.artemis.chado.Feature chado_feature = 
              new uk.ac.sanger.artemis.chado.Feature();
-           Dbxref dbxref = new Dbxref();
+           DbXRef dbxref = new DbXRef();
            Db db = new Db();
            db.setName(qualifier_string.substring(0,index));
            dbxref.setAccession(qualifier_string.substring(index+1));
            dbxref.setDb(db);
-           chado_feature.setUniquename(uniquename);
-           old_dbxref.setDbxref(dbxref);
+           chado_feature.setUniqueName(uniquename);
+           old_dbxref.setDbXRef(dbxref);
            old_dbxref.setFeature(chado_feature);
            
            tsn = new ChadoTransaction(ChadoTransaction.DELETE,
@@ -1147,7 +1147,7 @@ public class ChadoTransactionManager
            FeatureSynonym alias = new FeatureSynonym();
            uk.ac.sanger.artemis.chado.Feature chado_feature =
              new uk.ac.sanger.artemis.chado.Feature();
-           chado_feature.setUniquename(uniquename);
+           chado_feature.setUniqueName(uniquename);
            
            Synonym synonym = new Synonym();
            synonym.setName(qualifier_string);
@@ -1180,16 +1180,16 @@ public class ChadoTransactionManager
          
            System.out.println(uniquename+"  in handleReservedTags() INSERT db="+
              qualifier_string.substring(0,index)+" acc="+qualifier_string.substring(index+1));
-           FeatureDbxref new_dbxref = new FeatureDbxref();
-           Dbxref dbxref = new Dbxref();
+           FeatureDbXRef new_dbxref = new FeatureDbXRef();
+           DbXRef dbxref = new DbXRef();
            Db db = new Db();
            db.setName(qualifier_string.substring(0,index));
            dbxref.setDb(db);
            dbxref.setAccession(qualifier_string.substring(index+1));
-           new_dbxref.setDbxref(dbxref);
+           new_dbxref.setDbXRef(dbxref);
            uk.ac.sanger.artemis.chado.Feature feat = 
              new uk.ac.sanger.artemis.chado.Feature();
-           feat.setUniquename(uniquename);
+           feat.setUniqueName(uniquename);
            new_dbxref.setFeature(feat);
            
            tsn = new ChadoTransaction(ChadoTransaction.INSERT,
@@ -1204,13 +1204,13 @@ public class ChadoTransactionManager
            FeatureSynonym alias = new FeatureSynonym();
            uk.ac.sanger.artemis.chado.Feature chado_feature = 
              new uk.ac.sanger.artemis.chado.Feature();
-           chado_feature.setUniquename(uniquename);
+           chado_feature.setUniqueName(uniquename);
            
            Synonym synonym = new Synonym();
-           Cvterm cvterm = new Cvterm();
-           cvterm.setCvtermId(lcvterm_id.longValue());
+           CvTerm cvterm = new CvTerm();
+           cvterm.setCvTermId(lcvterm_id.longValue());
            synonym.setName(qualifier_string);
-           synonym.setCvterm(cvterm);
+           synonym.setCvTerm(cvterm);
            
            alias.setSynonym(synonym);
            alias.setFeature(chado_feature);
@@ -1255,7 +1255,7 @@ public class ChadoTransactionManager
     FeatureLoc featureloc = new FeatureLoc();
     uk.ac.sanger.artemis.chado.Feature chado_feature = 
       new uk.ac.sanger.artemis.chado.Feature();
-    chado_feature.setUniquename(seg_id);
+    chado_feature.setUniqueName(seg_id);
     
     featureloc.setFeature(chado_feature);
     featureloc.setFmax(range_new.getEnd());
@@ -1305,12 +1305,12 @@ public class ChadoTransactionManager
     FeatureProp featureprop = new FeatureProp();
     uk.ac.sanger.artemis.chado.Feature chado_feature   = 
       new uk.ac.sanger.artemis.chado.Feature();
-    chado_feature.setUniquename(uniquename);
-    Cvterm cvterm = new Cvterm();
-    cvterm.setCvtermId(lcvterm_id.longValue());
+    chado_feature.setUniqueName(uniquename);
+    CvTerm cvterm = new CvTerm();
+    cvterm.setCvTermId(lcvterm_id.longValue());
     featureprop.setValue(stripQuotes(qualifier_string));
     featureprop.setRank(rank);
-    featureprop.setCvterm(cvterm);
+    featureprop.setCvTerm(cvterm);
     featureprop.setFeature(chado_feature);
     return featureprop;
   }
diff --git a/uk/ac/sanger/artemis/chado/Cvterm.java b/uk/ac/sanger/artemis/chado/CvTerm.java
similarity index 89%
rename from uk/ac/sanger/artemis/chado/Cvterm.java
rename to uk/ac/sanger/artemis/chado/CvTerm.java
index f3a53247f..d2f13c58b 100644
--- a/uk/ac/sanger/artemis/chado/Cvterm.java
+++ b/uk/ac/sanger/artemis/chado/CvTerm.java
@@ -1,4 +1,4 @@
-/* Cvterm.java
+/* CvTerm.java
  *
  * created: 2005
  *
@@ -28,24 +28,24 @@ package uk.ac.sanger.artemis.chado;
 /**
  * Representation of cvterm table.
  */
-public class Cvterm
+public class CvTerm
 {
-  private long cvtermId;
+  private long cvTermId;
   private String name;
   private Cv cv;
-  private Dbxref dbxref;
+  private DbXRef dbXRef;
   private String definition;
   private int isObsolete;
   private int isRelationshiptype;
   
-  public long getCvtermId()
+  public long getCvTermId()
   {
-    return cvtermId;
+    return cvTermId;
   }
 
-  public void setCvtermId(long cvtermId)
+  public void setCvTermId(long cvTermId)
   {
-    this.cvtermId = cvtermId;
+    this.cvTermId = cvTermId;
   }
 
   /**
@@ -53,9 +53,9 @@ public class Cvterm
    * Note that a cvterm may have multiple secondary dbxrefs.
    * @return
    */
-  public Dbxref getDbxref()
+  public DbXRef getDbXRef()
   {
-    return dbxref;
+    return dbXRef;
   }
 
   /**
@@ -63,9 +63,9 @@ public class Cvterm
    * Note that a cvterm may have multiple secondary dbxrefs.
    * @param dbxref
    */
-  public void setDbxref(Dbxref dbxref)
+  public void setDbXRef(DbXRef dbXRef)
   {
-    this.dbxref = dbxref;
+    this.dbXRef = dbXRef;
   }
 
   public Cv getCv()
diff --git a/uk/ac/sanger/artemis/chado/Dbxref.java b/uk/ac/sanger/artemis/chado/DbXRef.java
similarity index 90%
rename from uk/ac/sanger/artemis/chado/Dbxref.java
rename to uk/ac/sanger/artemis/chado/DbXRef.java
index 299707267..a617b0349 100644
--- a/uk/ac/sanger/artemis/chado/Dbxref.java
+++ b/uk/ac/sanger/artemis/chado/DbXRef.java
@@ -27,9 +27,9 @@ package uk.ac.sanger.artemis.chado;
 /**
  * Representation of the chado dbxref table.
  */
-public class Dbxref
+public class DbXRef
 { 
-  private int db_id;
+  private int dbXRefId;
   private String accession;
   private String version;
   private String description;
@@ -55,14 +55,14 @@ public class Dbxref
     this.db = db;
   }
 
-  public int getDb_id()
+  public int getDbXRefId()
   {
-    return db_id;
+    return dbXRefId;
   }
 
-  public void setDb_id(int db_id)
+  public void setDbXRefId(int dbXRefId)
   {
-    this.db_id = db_id;
+    this.dbXRefId = dbXRefId;
   }
 
   public String getDescription()
diff --git a/uk/ac/sanger/artemis/chado/Feature.java b/uk/ac/sanger/artemis/chado/Feature.java
index 165dbbb45..a76cce10e 100644
--- a/uk/ac/sanger/artemis/chado/Feature.java
+++ b/uk/ac/sanger/artemis/chado/Feature.java
@@ -29,6 +29,7 @@ import java.sql.Timestamp;
 import java.util.Hashtable;
 import java.util.Vector;
 import java.util.List;
+import java.util.Collection;
 
 
 /**
@@ -47,7 +48,7 @@ public class Feature
   /** sequence length */
   private int length;
   /** features unique name */
-  private String uniquename = null;
+  private String uniqueName = null;
   /** features name */
   private String name;
   /** features residues */
@@ -56,8 +57,8 @@ public class Feature
   private boolean analysis;
   /** whether this feature has been obsoleted */
   private boolean obsolete;
-  /** feature cvterm */
-  private Cvterm cvterm;
+  /** feature cvTerm */
+  private CvTerm cvTerm;
   /** feature property */
   private FeatureProp featureprop;
   /** feature location (for a given srcfeature) */
@@ -67,23 +68,23 @@ public class Feature
   /** feature organism */
   private Organism organism;
   /** optional primary public stable identifier */
-  private FeatureDbxref feature_dbxref;
+  private FeatureDbXRef featureDbXRef;
   /** merged featureprops */
   private Hashtable qualifiers;
   /** list of FeatureProp */
-  private List featurepropList;
+  private Collection featurepropList;
   /** list of FeatureRelationship children */
-  private List featureRelationshipsForObjectId;
+  private Collection featureRelationshipsForObjectId;
   /** list of FeatureRelationship parent */
-  private List featureRelationshipsForSubjectId;
+  private Collection featureRelationshipsForSubjectId;
   /** list of feature dbxrefs (FeatureDbxref) */
-  private List featureDbxrefs;
+  private Collection featureDbXRefs;
   /** list of feature locations for a feature_id */
-  private List featurelocsForFeatureId;
+  private Collection featurelocsForFeatureId;
   /** used by getResidueFeatures */
-  private List featureCvterms;
+  private Collection featureCvTerms;
   /** list of feature synonyms */
-  private List featureSynonymsForFeatureId;
+  private Collection featureSynonymsForFeatureId;
 
 
 
@@ -165,9 +166,9 @@ public class Feature
    * must be unique for this type of feature within this organism.
    * @return	the unique name for a feature.
    */
-  public String getUniquename()
+  public String getUniqueName()
   {
-    return uniquename;
+    return uniqueName;
   }
 
   /**
@@ -176,9 +177,9 @@ public class Feature
    * must be unique for this type of feature within this organism.
    * @param uniquename	the unique name for a feature.
    */
-  public void setUniquename(String uniquename)
+  public void setUniqueName(String uniqueName)
   {
-    this.uniquename = uniquename;
+    this.uniqueName = uniqueName;
   }
 
   /**
@@ -258,23 +259,23 @@ public class Feature
   }
   
   /**
-  * A reference to a table:cvterm giving the feature type. 
+  * A reference to a table:cvTerm giving the feature type. 
   * This will typically be a Sequence Ontology identifier. 
-  * @return the feature SO cvterm
+  * @return the feature SO cvTerm
   */
-  public Cvterm getCvterm()
+  public CvTerm getCvTerm()
   {
-    return cvterm;
+    return cvTerm;
   }
 
   /**
-  * A reference to a table:cvterm giving the feature type. 
+  * A reference to a table:cvTerm giving the feature type. 
   * This will typically be a Sequence Ontology identifier.
-  * @param cvterm  the feature SO cvterm
+  * @param cvTerm  the feature SO cvTerm
   */
-  public void setCvterm(Cvterm cvterm)
+  public void setCvTerm(CvTerm cvTerm)
   {
-    this.cvterm = cvterm;
+    this.cvTerm = cvTerm;
   }
   
   /**
@@ -358,9 +359,9 @@ public class Feature
    * Secondary identifiers and external dbxrefs go in table:feature_dbxref
    * @return
    */
-  public FeatureDbxref getFeature_dbxref()
+  public FeatureDbXRef getFeatureDbXRef()
   {
-    return feature_dbxref;
+    return featureDbXRef;
   }
 
   /**
@@ -368,19 +369,19 @@ public class Feature
    * Secondary identifiers and external dbxrefs go in table:feature_dbxref
    * @param dbxref
    */
-  public void setFeature_dbxref(FeatureDbxref feature_dbxref)
+  public void setFeatureDbXRef(FeatureDbXRef featureDbXRef)
   {
-    this.feature_dbxref = feature_dbxref;
+    this.featureDbXRef = featureDbXRef;
   }
 
-  public List getFeatureCvterms()
+  public Collection getFeatureCvTerms()
   {
-    return featureCvterms;
+    return featureCvTerms;
   }
 
-  public void setFeatureCvterms(List featureCvterms)
+  public void setFeatureCvTerms(Collection featureCvTerms)
   {
-    this.featureCvterms = featureCvterms;
+    this.featureCvTerms = featureCvTerms;
   }
 
   /**
@@ -388,7 +389,7 @@ public class Feature
    * @return  featurepropList a <code>List</code> of featureprop's
    *          for a feature.
    */
-  public List getFeaturepropList()
+  public Collection getFeaturepropList()
   {
     return featurepropList;
   }
@@ -398,14 +399,14 @@ public class Feature
    * @param featurepropList a <code>List</code> of featureprop's
    *        for a feature.
    */
-  public void setFeaturepropList(List featurepropList)
+  public void setFeaturepropList(Collection featurepropList)
   {
     this.featurepropList = featurepropList;
     
     for(int i=0; i<featurepropList.size(); i++)
     {
-      FeatureProp featureprop = (FeatureProp)featurepropList.get(i);
-      addQualifier(featureprop.getCvterm().getCvtermId(), featureprop);
+      FeatureProp featureprop = (FeatureProp)(((List)featurepropList).get(i));
+      addQualifier(featureprop.getCvTerm().getCvTermId(), featureprop);
     }
   }
   
@@ -413,7 +414,7 @@ public class Feature
    * Get a list of <code>FeatureRelationship</code> children
    * @return
    */
-  public List getFeatureRelationshipsForObjectId()
+  public Collection getFeatureRelationshipsForObjectId()
   {
     return featureRelationshipsForObjectId;
   }
@@ -423,7 +424,7 @@ public class Feature
    * @param featureRelationshipsForObjectId
    */
   public void setFeatureRelationshipsForObjectId(
-      List featureRelationshipsForObjectId)
+      Collection featureRelationshipsForObjectId)
   {
     this.featureRelationshipsForObjectId = featureRelationshipsForObjectId;
   }
@@ -432,7 +433,7 @@ public class Feature
    * Get a list of <code>FeatureRelationship</code> parent
    * @return
    */
-  public List getFeatureRelationshipsForSubjectId()
+  public Collection getFeatureRelationshipsForSubjectId()
   {
     return featureRelationshipsForSubjectId;
   }
@@ -442,7 +443,7 @@ public class Feature
    * @param featureRelationshipsForSubjectId
    */
   public void setFeatureRelationshipsForSubjectId(
-      List featureRelationshipsForSubjectId)
+      Collection featureRelationshipsForSubjectId)
   {
     this.featureRelationshipsForSubjectId = featureRelationshipsForSubjectId;
   }
@@ -451,25 +452,25 @@ public class Feature
    * Get a list of feature dbxrefs (<code>FeatureDbxref</code>)
    * @return
    */
-  public List getFeatureDbxrefs()
+  public Collection getFeatureDbXRefs()
   {
-    return featureDbxrefs;
+    return featureDbXRefs;
   }
 
   /**
    * Set a list of feature dbxrefs (<code>FeatureDbxref</code>)
    * @param featureDbxrefs
    */
-  public void setFeatureDbxrefs(List featureDbxrefs)
+  public void setFeatureDbXRefs(Collection featureDbXRefs)
   {
-    this.featureDbxrefs = featureDbxrefs;
+    this.featureDbXRefs = featureDbXRefs;
   }
 
   /**
    * Get list of feature locations for a feature_id
    * @return
    */
-  public List getFeaturelocsForFeatureId()
+  public Collection getFeaturelocsForFeatureId()
   {
     return featurelocsForFeatureId;
   }
@@ -478,17 +479,17 @@ public class Feature
    * Set a list of feature locations for a feature_id
    * @param featurelocsForFeatureId
    */
-  public void setFeaturelocsForFeatureId(List featurelocsForFeatureId)
+  public void setFeaturelocsForFeatureId(Collection featurelocsForFeatureId)
   {
     this.featurelocsForFeatureId = featurelocsForFeatureId;
   }
   
-  public List getFeatureSynonymsForFeatureId()
+  public Collection getFeatureSynonymsForFeatureId()
   {
     return featureSynonymsForFeatureId;
   }
 
-  public void setFeatureSynonymsForFeatureId(List featureSynonymsForFeatureId)
+  public void setFeatureSynonymsForFeatureId(Collection featureSynonymsForFeatureId)
   {
     this.featureSynonymsForFeatureId = featureSynonymsForFeatureId;
   }
@@ -497,9 +498,9 @@ public class Feature
   
   /**
    * Used in merging the qualifiers to store them as a <code>Hashtable</code> of
-   * the cvterm type_id (of the property name) and the property values as a 
+   * the cvTerm type_id (of the property name) and the property values as a 
    * <code>Vector</code>.
-   * @param	the cvterm type_id of the property name
+   * @param	the cvTerm type_id of the property name
    * @param	the property value	
    */
   public void addQualifier(long prop_type_id, FeatureProp featprop)
@@ -523,7 +524,7 @@ public class Feature
   }
 
   /**
-   * Get the qualifiers which are stored as a <code>Hashtable</code> of cvterm
+   * Get the qualifiers which are stored as a <code>Hashtable</code> of cvTerm
    * type_id (of the property name) and the property values as a <code>Vector</code>.
    * @return	the qualifiers as a <code>Hashtable</code>
    */
diff --git a/uk/ac/sanger/artemis/chado/FeatureDbxref.java b/uk/ac/sanger/artemis/chado/FeatureDbXRef.java
similarity index 79%
rename from uk/ac/sanger/artemis/chado/FeatureDbxref.java
rename to uk/ac/sanger/artemis/chado/FeatureDbXRef.java
index 54b5576dd..f5a95b75f 100644
--- a/uk/ac/sanger/artemis/chado/FeatureDbxref.java
+++ b/uk/ac/sanger/artemis/chado/FeatureDbXRef.java
@@ -27,13 +27,13 @@ package uk.ac.sanger.artemis.chado;
 /**
  * Representation of the chado feature_dbxref.
  */
-public class FeatureDbxref
+public class FeatureDbXRef
 { 
   /** feature_dbxref */
   private Feature feature;
-  private int dbxref_id;
+  private int featureDbXRefId;
   private boolean current = true;
-  private Dbxref dbxref;
+  private DbXRef dbXRef;
 
   public Feature getFeature()
   {
@@ -54,26 +54,25 @@ public class FeatureDbxref
   {
     this.current = current;
   }
-
-
-  public int getDbxref_id()
+  
+  public DbXRef getDbXRef()
   {
-    return dbxref_id;
+    return dbXRef;
   }
 
-  public void setDbxref_id(int dbxref_id)
+  public void setDbXRef(DbXRef dbXRef)
   {
-    this.dbxref_id = dbxref_id;
+    this.dbXRef = dbXRef;
   }
-  
-  public Dbxref getDbxref()
+
+  public int getFeatureDbXRefId()
   {
-    return dbxref;
+    return featureDbXRefId;
   }
 
-  public void setDbxref(Dbxref dbxref)
+  public void setFeatureDbXRefId(int featureDbXRefId)
   {
-    this.dbxref = dbxref;
+    this.featureDbXRefId = featureDbXRefId;
   }
 }
 
diff --git a/uk/ac/sanger/artemis/chado/FeatureProp.java b/uk/ac/sanger/artemis/chado/FeatureProp.java
index 121787a98..0fc7b0ac9 100644
--- a/uk/ac/sanger/artemis/chado/FeatureProp.java
+++ b/uk/ac/sanger/artemis/chado/FeatureProp.java
@@ -30,26 +30,26 @@ package uk.ac.sanger.artemis.chado;
 public class FeatureProp
 {
   public Feature feature;
-  public Cvterm cvterm;
+  public CvTerm cvTerm;
   public String value;
   public int rank;
 
   /**
    * Get the cv term
-   * @return cvterm
+   * @return cvTerm
    */
-  public Cvterm getCvterm()
+  public CvTerm getCvTerm()
   {
-    return cvterm;
+    return cvTerm;
   }
   
   /**
    * Set the cv term
-   * @param cvterm
+   * @param cvTerm
    */
-  public void setCvterm(Cvterm cvterm)
+  public void setCvTerm(CvTerm cvTerm)
   {
-    this.cvterm = cvterm;
+    this.cvTerm = cvTerm;
   }
   
   /**
diff --git a/uk/ac/sanger/artemis/chado/FeatureRelationship.java b/uk/ac/sanger/artemis/chado/FeatureRelationship.java
index 47c86993d..2fa8c0344 100644
--- a/uk/ac/sanger/artemis/chado/FeatureRelationship.java
+++ b/uk/ac/sanger/artemis/chado/FeatureRelationship.java
@@ -34,7 +34,7 @@ public class FeatureRelationship
   /** id of the parent feature */
   public Feature object;
   /** cv term of feature relationship (e.g. part_of) */
-  public Cvterm cvterm;
+  public CvTerm cvTerm;
   /** Additional notes/comments */
   public String value;
   /** ordering of subject features */
@@ -43,21 +43,21 @@ public class FeatureRelationship
   /**
    * Get the cv term for the relationship type between 
    * subject and object (e.g. part_of).
-   * @return cvterm
+   * @return cvTerm
    */
-  public Cvterm getCvterm()
+  public CvTerm getCvTerm()
   {
-    return cvterm;
+    return cvTerm;
   }
   
   /**
    * Set the cv term for the relationship type between 
    * subject and object (e.g. part_of).
-   * @param cvterm
+   * @param cvTerm
    */
-  public void setCvterm(Cvterm cvterm)
+  public void setCvTerm(CvTerm cvTerm)
   {
-    this.cvterm = cvterm;
+    this.cvTerm = cvTerm;
   }
   
   /**
diff --git a/uk/ac/sanger/artemis/chado/IBatisDAO.java b/uk/ac/sanger/artemis/chado/IBatisDAO.java
index 7132a78d2..f3df5dd63 100644
--- a/uk/ac/sanger/artemis/chado/IBatisDAO.java
+++ b/uk/ac/sanger/artemis/chado/IBatisDAO.java
@@ -75,7 +75,7 @@ public class IBatisDAO implements ChadoDAO
   public Feature getFeatureByUniqueName(String uniquename) 
   {
     Feature feature = new Feature();
-    feature.setUniquename(uniquename);
+    feature.setUniqueName(uniquename);
     return getLazyFeature(feature);
   }
    
@@ -109,7 +109,7 @@ public class IBatisDAO implements ChadoDAO
       sqlMap.queryForList("getFeatureSynonymsByName", alias);
     
     Feature feature = new Feature();
-    feature.setUniquename(name);
+    feature.setUniqueName(name);
     feature.setFeatureSynonymsForFeatureId(feature_synonym_list);
 
     List features = sqlMap.queryForList("getLazyFeature", feature);
@@ -153,7 +153,7 @@ public class IBatisDAO implements ChadoDAO
   { 
     Feature feature = new Feature();
     feature.setSchema(schema);
-    feature.setFeatureCvterms(cvterm_ids);
+    feature.setFeatureCvTerms(cvterm_ids);
 
     return sqlMap.queryForList("getResidueFeatures",
                                 feature);
@@ -184,10 +184,10 @@ public class IBatisDAO implements ChadoDAO
 
   /**
    * Get the full list of cvterm_id and name as a <code>List</code> of 
-   * <code>Cvterm</code> objects.
+   * <code>CvTerm</code> objects.
    * @return    the full list of cvterm_id and name
    */
-  public List getCvterm()
+  public List getCvTerm()
   {
     return sqlMap.queryForList("getCvterm", null);
   }
@@ -196,15 +196,15 @@ public class IBatisDAO implements ChadoDAO
   /**
    * Get dbxref for a feature.
    * @param uniquename  the unique name for the feature. If set to NULL
-   *                    all <code>FeatureDbxref</code> are returned.
+   *                    all <code>FeatureDbXRef</code> are returned.
    * @return a <code>List</code> of feature_dbxrefs.
    */
-  public List getFeatureDbxrefByUniquename(final String uniquename)
+  public List getFeatureDbXRefByUniquename(final String uniquename)
   {
     Feature feature = new Feature();
-    feature.setUniquename(uniquename);
+    feature.setUniqueName(uniquename);
     
-    return sqlMap.queryForList("getFeatureDbxref", feature);  
+    return sqlMap.queryForList("getFeatureDbXRef", feature);  
   }
    
   /**
@@ -216,7 +216,7 @@ public class IBatisDAO implements ChadoDAO
   public List getFeatureSynonymsByUniquename(final String uniquename)
   {
     Feature feature = new Feature();
-    feature.setUniquename(uniquename);
+    feature.setUniqueName(uniquename);
     
     return sqlMap.queryForList("getFeatureSynonymsByUniquename", feature);  
   }
@@ -228,11 +228,11 @@ public class IBatisDAO implements ChadoDAO
    * @return a Synonym, or null  
    */
   public Synonym getSynonymByNameAndCvTerm(
-      String name, Cvterm type) 
+      String name, CvTerm type) 
   {
     Synonym synonym = new Synonym();
     synonym.setName(name);
-    synonym.setCvterm(type);
+    synonym.setCvTerm(type);
 
     return (Synonym)sqlMap.queryForObject("getSynonymByNameAndType", 
            synonym);
@@ -259,15 +259,15 @@ public class IBatisDAO implements ChadoDAO
    * @param name cvterm name
    * @param cv_name ontology name (e.g. gene, sequence)
    */
-  public Cvterm getCvtermID(String name, String cv_name)
+  public CvTerm getCvtermID(String name, String cv_name)
   { 
-    Cvterm cvterm   = new Cvterm();
+    CvTerm cvterm   = new CvTerm();
     Cv cv = new Cv();
     cv.setName(cv_name);
     cvterm.setCv(cv);
     cvterm.setName(name);
 
-    return (Cvterm)sqlMap.queryForObject("getCvterm", cvterm);
+    return (CvTerm)sqlMap.queryForObject("getCvterm", cvterm);
   }
 
 //
@@ -308,8 +308,8 @@ public class IBatisDAO implements ChadoDAO
       sqlMap.insert("insertFeatureProp", o);
     else if(o instanceof Feature)
       insertFeature((Feature)o);
-    else if(o instanceof FeatureDbxref)
-      insertFeatureDbxref((FeatureDbxref)o);
+    else if(o instanceof FeatureDbXRef)
+      insertFeatureDbXRef((FeatureDbXRef)o);
     else if(o instanceof FeatureSynonym)
       insertFeatureAlias((FeatureSynonym)o);
   }
@@ -328,8 +328,8 @@ public class IBatisDAO implements ChadoDAO
       sqlMap.delete("deleteFeature", o);
     else if(o instanceof FeatureProp)
       sqlMap.delete("deleteFeatureProp", o);
-    else if(o instanceof FeatureDbxref)
-      sqlMap.delete("deleteFeatureDbxref", o);
+    else if(o instanceof FeatureDbXRef)
+      sqlMap.delete("deleteFeatureDbXRef", o);
     else if(o instanceof FeatureSynonym)
       deleteFeatureSynonym((FeatureSynonym)o);
   }
@@ -364,7 +364,8 @@ public class IBatisDAO implements ChadoDAO
     // insert feature relationships
     if(feature.getFeatureRelationshipsForSubjectId() != null)
     {
-      List parents = feature.getFeatureRelationshipsForSubjectId();
+      List parents = new Vector(
+          feature.getFeatureRelationshipsForSubjectId());
       
       for(int i=0; i<parents.size(); i++)
       {
@@ -377,43 +378,45 @@ public class IBatisDAO implements ChadoDAO
 
   /**
    * Insert a feature_dbxref for a feature.
-   * @param feature_dbxref    the <code>FeatureDbxref</code>
+   * @param feature_dbxref    the <code>FeatureDbXRef</code>
    */
-  private void insertFeatureDbxref(final FeatureDbxref feature_dbxref)
+  private void insertFeatureDbXRef(final FeatureDbXRef feature_dbxref)
   {
     Integer db_id = (Integer)sqlMap.queryForObject("getDbId", 
-                         feature_dbxref.getDbxref().getDb());
+                         feature_dbxref.getDbXRef().getDb());
     
     System.out.print(db_id.intValue());
 
     
     if(db_id == null)
       throw new RuntimeException("No database called "+
-          feature_dbxref.getDbxref().getDb().getName()+" found (for "+
-          feature_dbxref.getFeature().getUniquename()+
+          feature_dbxref.getDbXRef().getDb().getName()+" found (for "+
+          feature_dbxref.getFeature().getUniqueName()+
           ") check the spelling!");
     
-    feature_dbxref.getDbxref().setDb_id(db_id.intValue());
+    feature_dbxref.getDbXRef().setDbXRefId(db_id.intValue());
     
     Integer dbxref_id = 
-      (Integer)sqlMap.queryForObject("getDbxrefId", feature_dbxref.getDbxref());
+      (Integer)sqlMap.queryForObject("getDbXRefId", feature_dbxref.getDbXRef());
     if(dbxref_id == null)
     {
       // create a new accession entry in dbxref
-      sqlMap.insert("insertDbxref", feature_dbxref.getDbxref());
+      sqlMap.insert("insertDbXRef", feature_dbxref.getDbXRef());
       // now get the new dbxref_id
-      dbxref_id = (Integer)sqlMap.queryForObject("getDbxrefId", 
-          feature_dbxref.getDbxref());
+      dbxref_id = (Integer)sqlMap.queryForObject("getDbXRefId", 
+          feature_dbxref.getDbXRef());
     }
     
-    feature_dbxref.setDbxref_id(dbxref_id.intValue());
+    DbXRef dbXRef = new DbXRef();
+    dbXRef.setDbXRefId(dbxref_id.intValue());
+    feature_dbxref.setDbXRef(dbXRef);
     
     //  get the feature id's  
     Feature feature = getFeatureByUniqueName(
-        feature_dbxref.getFeature().getUniquename());
+        feature_dbxref.getFeature().getUniqueName());
     feature_dbxref.getFeature().setId( feature.getId() );
 
-    sqlMap.insert("insertFeatureDbxref", feature_dbxref);
+    sqlMap.insert("insertFeatureDbXRef", feature_dbxref);
   }
   
   
@@ -494,9 +497,9 @@ public class IBatisDAO implements ChadoDAO
     for(int i = 0; i < feature_size; i++)
     {
       Feature feat = (Feature)list.get(i);
-      String name  = feat.getUniquename();
+      String name  = feat.getUniqueName();
 
-      feat.addQualifier(feat.getFeatureprop().getCvterm().getCvtermId(),
+      feat.addQualifier(feat.getFeatureprop().getCvTerm().getCvTermId(),
                         feat.getFeatureprop());
 
       if(i < feature_size - 1)
@@ -505,9 +508,9 @@ public class IBatisDAO implements ChadoDAO
         featNext = null;
       
       // merge next line if part of the same feature
-      while(featNext != null && featNext.getUniquename().equals(name))
+      while(featNext != null && featNext.getUniqueName().equals(name))
       {
-        feat.addQualifier(featNext.getFeatureprop().getCvterm().getCvtermId(),
+        feat.addQualifier(featNext.getFeatureprop().getCvTerm().getCvTermId(),
                           featNext.getFeatureprop());
         i++;
 
@@ -526,18 +529,18 @@ public class IBatisDAO implements ChadoDAO
   /**
    * Takes a list and creates a <code>Hashtable</code> with the keys
    * being the feature_id and the value a <code>Vector</code> of the dbxrefs.
-   * @param list  a <code>List</code> of <code>Dbxref</code> objects.
+   * @param list  a <code>List</code> of <code>DbXRef</code> objects.
    * @return a <code>Hashtable</code> of dbxrefs.
    */
-  public static Hashtable mergeDbxref(final List list)
+  public static Hashtable mergeDbXRef(final List list)
   {
     Hashtable dbxrefHash = new Hashtable();
     for(int i = 0; i < list.size(); i++)
     {
-      FeatureDbxref dbxref = (FeatureDbxref)list.get(i);
+      FeatureDbXRef dbxref = (FeatureDbXRef)list.get(i);
       Integer feature_id = new Integer(dbxref.getFeature().getId());
-      String value = dbxref.getDbxref().getDb().getName() + ":" + 
-                     dbxref.getDbxref().getAccession();
+      String value = dbxref.getDbXRef().getDb().getName() + ":" + 
+                     dbxref.getDbXRef().getAccession();
       if(dbxrefHash.containsKey(feature_id))
       {
         Vector v = (Vector)dbxrefHash.get(feature_id);
diff --git a/uk/ac/sanger/artemis/chado/JdbcDAO.java b/uk/ac/sanger/artemis/chado/JdbcDAO.java
index 541e67b48..0b0fb3b22 100644
--- a/uk/ac/sanger/artemis/chado/JdbcDAO.java
+++ b/uk/ac/sanger/artemis/chado/JdbcDAO.java
@@ -88,7 +88,7 @@ public class JdbcDAO
   public Feature getFeatureByUniqueName(String uniquename)
   {
     Feature feature = new Feature();
-    feature.setUniquename(uniquename);
+    feature.setUniqueName(uniquename);
     feature.setId(-1);
     return getLazyFeature(feature);
   }
@@ -116,7 +116,7 @@ public class JdbcDAO
   public List getFeaturesByAnyCurrentName(String name) 
   {
     Feature feature = new Feature();
-    feature.setUniquename(name);
+    feature.setUniqueName(name);
     return getFeatureQuery(name, -1, -1);
   }
   
@@ -138,7 +138,7 @@ public class JdbcDAO
    */
   private Feature getLazyFeature(final Feature feature)
   {
-    List list = getFeatureQuery(feature.getUniquename(), 
+    List list = getFeatureQuery(feature.getUniqueName(), 
                                 -1, feature.getId());
     return (Feature)list.get(0);
   }
@@ -204,26 +204,26 @@ public class JdbcDAO
         feature.setResidues(rs.getBytes("residues"));
 
         feature.setFeatureloc(featureloc);
-        feature.setCvterm(new Cvterm());
-        feature.getCvterm().setCvtermId(rs.getLong("type_id"));
+        feature.setCvTerm(new CvTerm());
+        feature.getCvTerm().setCvTermId(rs.getLong("type_id"));
 
         // feature properties
         FeatureProp featureprop = new FeatureProp();
-        Cvterm cvterm = new Cvterm();
-        cvterm.setCvtermId(rs.getLong("prop_type_id"));
-        featureprop.setCvterm(cvterm);
+        CvTerm cvterm = new CvTerm();
+        cvterm.setCvTermId(rs.getLong("prop_type_id"));
+        featureprop.setCvTerm(cvterm);
         featureprop.setValue(rs.getString("value"));
         feature.setFeatureprop(featureprop);
 
-        feature.setUniquename(rs.getString("uniquename"));
+        feature.setUniqueName(rs.getString("uniquename"));
         feature.setTimelastmodified(rs.getTimestamp("timelastmodified"));
         feature.setId(rs.getInt("feature_id"));
 
         // feature relationship
         FeatureRelationship feature_relationship = new FeatureRelationship();
-        cvterm = new Cvterm();
-        cvterm.setCvtermId(rs.getLong("relation_type_id"));
-        feature_relationship.setCvterm(cvterm);
+        cvterm = new CvTerm();
+        cvterm.setCvTermId(rs.getLong("relation_type_id"));
+        feature_relationship.setCvTerm(cvterm);
 
         Feature object = new Feature();
         object.setId(rs.getInt("object_id"));
@@ -297,9 +297,9 @@ public class JdbcDAO
         feature.setOrganism(organism);
         feature.setId(rs.getInt("feature_id"));
         feature.setName(rs.getString("name"));
-        feature.setUniquename(rs.getString("uniquename"));
-        feature.setCvterm(new Cvterm());
-        feature.getCvterm().setCvtermId(rs.getLong("type_id"));
+        feature.setUniqueName(rs.getString("uniquename"));
+        feature.setCvTerm(new CvTerm());
+        feature.getCvTerm().setCvTermId(rs.getLong("type_id"));
 
         list.add(feature);
       }
@@ -372,10 +372,10 @@ public class JdbcDAO
 
   /**
    * Get the full list of cvterm_id and name as a <code>List</code> of 
-   * <code>Cvterm</code> objects.
+   * <code>CvTerm</code> objects.
    * @return    the full list of cvterm_id and name
    */
-  public List getCvterm()
+  public List getCvTerm()
   {
     String sql = "SELECT cvterm.cvterm_id, cvterm.name " +
                  "FROM cvterm, cv WHERE cv.cv_id = cvterm.cv_id";
@@ -390,8 +390,8 @@ public class JdbcDAO
 
       while(rs.next())
       {
-        Cvterm cvterm = new Cvterm();
-        cvterm.setCvtermId(rs.getLong("cvterm_id"));
+        CvTerm cvterm = new CvTerm();
+        cvterm.setCvTermId(rs.getLong("cvterm_id"));
         cvterm.setName(rs.getString("name"));
         cvterms.add(cvterm);
       }
@@ -407,10 +407,10 @@ public class JdbcDAO
   /**
    * Get dbxref for a feature.
    * @param uniquename  the unique name for the feature. If set to NULL
-   *                    all <code>FeatureDbxref</code> are returned.
+   *                    all <code>FeatureDbXRef</code> are returned.
    * @return a <code>List</code> of feature_dbxrefs.
    */
-  public List getFeatureDbxrefByUniquename(final String uniquename)
+  public List getFeatureDbXRefByUniquename(final String uniquename)
   {
     String sql = "SELECT db.name, dbx.accession, f.feature_id FROM "+
                  "feature_dbxref dbx_f "+
@@ -431,15 +431,15 @@ public class JdbcDAO
 
       while(rs.next())
       {
-        FeatureDbxref feature_dbxref = new FeatureDbxref();
-        Dbxref dbxref = new Dbxref();
+        FeatureDbXRef feature_dbxref = new FeatureDbXRef();
+        DbXRef dbxref = new DbXRef();
         Db db = new Db();
         db.setName(rs.getString("name"));
         dbxref.setAccession(rs.getString("accession"));
         dbxref.setDb(db);
         Feature feat = new Feature();
         feat.setId(rs.getInt("feature_id"));
-        feature_dbxref.setDbxref(dbxref);
+        feature_dbxref.setDbXRef(dbxref);
         feature_dbxref.setFeature(feat);
         dbxrefs.add(feature_dbxref);
       }
@@ -480,11 +480,11 @@ public class JdbcDAO
       while(rs.next())
       {
         alias = new FeatureSynonym();
-        Cvterm cvterm = new Cvterm();
-        cvterm.setCvtermId(rs.getLong("type_id"));
+        CvTerm cvterm = new CvTerm();
+        cvterm.setCvTermId(rs.getLong("type_id"));
         Synonym syn = new Synonym();
         syn.setName(rs.getString("name"));
-        syn.setCvterm(cvterm);
+        syn.setCvTerm(cvterm);
         Feature feat = new Feature();
         feat.setId(rs.getInt("feature_id"));
 
@@ -512,7 +512,7 @@ public class JdbcDAO
 
 
   public Synonym getSynonymByNameAndCvTerm(
-      String name, Cvterm type)
+      String name, CvTerm type)
   {
     return null;
   }
@@ -554,8 +554,8 @@ public class JdbcDAO
       insertFeatureProp((FeatureProp)o);
     else if(o instanceof Feature)
       insertFeature((Feature)o);
-    else if(o instanceof FeatureDbxref)
-      insertFeatureDbxref((FeatureDbxref)o);
+    else if(o instanceof FeatureDbXRef)
+      insertFeatureDbXRef((FeatureDbXRef)o);
     else if(o instanceof FeatureSynonym)
       insertFeatureAlias((FeatureSynonym)o);
   }
@@ -573,8 +573,8 @@ public class JdbcDAO
       deleteFeature((Feature)o);
     else if(o instanceof FeatureProp)
       deleteFeatureProp((FeatureProp)o);
-    else if(o instanceof FeatureDbxref)
-      deleteFeatureDbxref((FeatureDbxref)o);
+    else if(o instanceof FeatureDbXRef)
+      deleteFeatureDbXRef((FeatureDbXRef)o);
     else if(o instanceof FeatureSynonym)
       deleteFeatureSynonym((FeatureSynonym)o);
   }
@@ -597,7 +597,7 @@ public class JdbcDAO
       pstmt.setInt(3, featureloc.getRank());
       pstmt.setInt(4, featureloc.getStrand());
       pstmt.setInt(5, featureloc.getPhase());
-      pstmt.setString(6, featureloc.getFeature().getUniquename());
+      pstmt.setString(6, featureloc.getFeature().getUniqueName());
       appendToLogFile(sql, sqlLog);
 
       pstmt.executeUpdate();
@@ -616,7 +616,7 @@ public class JdbcDAO
   {
     String sql = "UPDATE feature SET uniquename=?";
 
-    if(feature.getCvterm() != null)
+    if(feature.getCvTerm() != null)
       sql = sql+", type_id=?";
     
     if(feature.getTimelastmodified() != null)
@@ -627,11 +627,11 @@ public class JdbcDAO
     try
     {
       PreparedStatement pstmt = conn.prepareStatement(sql);
-      pstmt.setString(1, feature.getUniquename());
+      pstmt.setString(1, feature.getUniqueName());
       int param = 2;
-      if(feature.getCvterm() != null)
+      if(feature.getCvTerm() != null)
       {
-        pstmt.setLong(param, feature.getCvterm().getCvtermId());
+        pstmt.setLong(param, feature.getCvTerm().getCvTermId());
         param++;
       }
 
@@ -666,8 +666,8 @@ public class JdbcDAO
       PreparedStatement pstmt = conn.prepareStatement(sql);
       pstmt.setString(1, featureprop.getValue());
       pstmt.setInt(2, featureprop.getRank());
-      pstmt.setLong(3, featureprop.getCvterm().getCvtermId());
-      pstmt.setString(4, featureprop.getFeature().getUniquename());
+      pstmt.setLong(3, featureprop.getCvTerm().getCvTermId());
+      pstmt.setString(4, featureprop.getFeature().getUniqueName());
 
       appendToLogFile(sql, sqlLog);
       pstmt.executeUpdate();
@@ -693,8 +693,8 @@ public class JdbcDAO
     sqlBuff.append("VALUES ");
     
     sqlBuff.append("((SELECT feature_id FROM feature WHERE uniquename=");
-    sqlBuff.append("'"+ featureprop.getFeature().getUniquename()+"')," );
-    sqlBuff.append(featureprop.getCvterm().getCvtermId()+", ");
+    sqlBuff.append("'"+ featureprop.getFeature().getUniqueName()+"')," );
+    sqlBuff.append(featureprop.getCvTerm().getCvTermId()+", ");
     sqlBuff.append(featureprop.getValue()+",");
     sqlBuff.append(featureprop.getRank());
 
@@ -720,7 +720,7 @@ public class JdbcDAO
                     (final FeatureProp featureprop)
   {
     StringBuffer sqlBuff = new StringBuffer();
-    String uniquename = featureprop.getFeature().getUniquename();
+    String uniquename = featureprop.getFeature().getUniqueName();
 
     sqlBuff.append("DELETE FROM featureprop WHERE ");
 
@@ -735,7 +735,7 @@ public class JdbcDAO
     if(featureprop.getValue() != null)
       sqlBuff.append("value="+featureprop.getValue()+" AND ");
     
-    sqlBuff.append("type_id="+featureprop.getCvterm().getCvtermId());
+    sqlBuff.append("type_id="+featureprop.getCvTerm().getCvTermId());
       
     appendToLogFile(new String(sqlBuff), sqlLog);
 
@@ -785,8 +785,8 @@ public class JdbcDAO
       sql_buff.append("nextval('feature_feature_id_seq') , ");
       sql_buff.append(organism_id + " , ");
       sql_buff.append("'" + feature.getName() + "'" + " , ");
-      sql_buff.append("'" + feature.getUniquename() + "'" + " , ");
-      sql_buff.append(Long.toString(feature.getCvterm().getCvtermId()));
+      sql_buff.append("'" + feature.getUniqueName() + "'" + " , ");
+      sql_buff.append(Long.toString(feature.getCvTerm().getCvTermId()));
       sql_buff.append(" )");
 
       sql = new String(sql_buff);
@@ -832,7 +832,7 @@ public class JdbcDAO
       // insert feature relationships
       if(feature.getFeatureRelationshipsForSubjectId() != null)
       {
-        List parents = feature.getFeatureRelationshipsForSubjectId();
+        List parents = (List)feature.getFeatureRelationshipsForSubjectId();
         for(int i = 0; i < parents.size(); i++)
         {
           // insert feature_relationship
@@ -845,12 +845,12 @@ public class JdbcDAO
           sql_buff.append("VALUES ");
           sql_buff
               .append("( (SELECT feature_id FROM feature WHERE uniquename='");
-          sql_buff.append(feature_relationship.getSubject().getUniquename()
+          sql_buff.append(feature_relationship.getSubject().getUniqueName()
               + "'), ");
           sql_buff.append("(SELECT feature_id FROM feature WHERE uniquename='");
-          sql_buff.append(feature_relationship.getObject().getUniquename()
+          sql_buff.append(feature_relationship.getObject().getUniqueName()
               + "'), ");
-          sql_buff.append(feature_relationship.getCvterm().getCvtermId() + ")");
+          sql_buff.append(feature_relationship.getCvTerm().getCvTermId() + ")");
 
           sql = new String(sql_buff);
           appendToLogFile(sql, sqlLog);
@@ -878,7 +878,7 @@ public class JdbcDAO
     try
     {
       String sql = "DELETE FROM feature WHERE uniquename='"
-          + feature.getUniquename() + "'";
+          + feature.getUniqueName() + "'";
       appendToLogFile(sql, sqlLog);
 
       Statement st = conn.createStatement();
@@ -892,13 +892,13 @@ public class JdbcDAO
 
   /**
    * Insert a feature_dbxref for a feature.
-   * @param feature_dbxref    the new <code>FeatureDbxref</code>
+   * @param feature_dbxref    the new <code>FeatureDbXRef</code>
    */
-  private void insertFeatureDbxref(final FeatureDbxref feature_dbxref)
+  private void insertFeatureDbXRef(final FeatureDbXRef feature_dbxref)
   {   
     // find database id
     String sql = "SELECT db_id FROM db WHERE name='"+
-                 feature_dbxref.getDbxref().getDb().getName()+"'";
+                 feature_dbxref.getDbXRef().getDb().getName()+"'";
     
     try
     {
@@ -908,31 +908,31 @@ public class JdbcDAO
 
       if(!exists)
         throw new SQLException("No database called "
-            + feature_dbxref.getDbxref().getDb().getName() + " found (for "
-            + feature_dbxref.getFeature().getUniquename()
+            + feature_dbxref.getDbXRef().getDb().getName() + " found (for "
+            + feature_dbxref.getFeature().getUniqueName()
             + ") check the spelling!");
 
       final int db_id = rs.getInt("db_id");
       // find if accession exists already
-      String sqlDbxrefId = "SELECT dbxref_id FROM dbxref WHERE accession='"
-          + feature_dbxref.getDbxref().getAccession() + "' AND db_id=" + db_id;
+      String sqlDbXRefId = "SELECT dbxref_id FROM dbxref WHERE accession='"
+          + feature_dbxref.getDbXRef().getAccession() + "' AND db_id=" + db_id;
 
-      appendToLogFile(sqlDbxrefId, sqlLog);
-      rs = st.executeQuery(sqlDbxrefId);
+      appendToLogFile(sqlDbXRefId, sqlLog);
+      rs = st.executeQuery(sqlDbXRefId);
       exists = rs.next();
 
       if(!exists)
       {
         // create a new accession entry in dbxref
         sql = "INSERT INTO dbxref ( db_id, accession ) " + "VALUES (" + db_id
-            + ", '" + feature_dbxref.getDbxref().getAccession() + "' )";
+            + ", '" + feature_dbxref.getDbXRef().getAccession() + "' )";
 
         appendToLogFile(sql, sqlLog);
         int rowCount = st.executeUpdate(new String(sql));
 
         // now get the new dbxref_id
-        appendToLogFile(sqlDbxrefId, sqlLog);
-        rs = st.executeQuery(sqlDbxrefId);
+        appendToLogFile(sqlDbXRefId, sqlLog);
+        rs = st.executeQuery(sqlDbXRefId);
         rs.next();
       }
 
@@ -940,7 +940,7 @@ public class JdbcDAO
       sql = "INSERT INTO feature_dbxref "
           + "(feature_id, dbxref_id, is_current)" + " VALUES "
           + "( (SELECT feature_id FROM " + "feature WHERE  uniquename='"
-          + feature_dbxref.getFeature().getUniquename() + "'), " + dbxref_id
+          + feature_dbxref.getFeature().getUniqueName() + "'), " + dbxref_id
           + ", " + Boolean.toString(feature_dbxref.isCurrent()) + ")";
       System.out.println(sql);
       appendToLogFile(sql, sqlLog);
@@ -954,19 +954,19 @@ public class JdbcDAO
   
   /**
    * Delete a feature_dbxref for a feature.
-   * @param feature_dbxref  the  new <code>FeatureDbxref</code>
+   * @param feature_dbxref  the  new <code>FeatureDbXRef</code>
    */
-  private void deleteFeatureDbxref(final FeatureDbxref feature_dbxref)
+  private void deleteFeatureDbXRef(final FeatureDbXRef feature_dbxref)
   {
-    final String uniquename = feature_dbxref.getFeature().getUniquename();
+    final String uniquename = feature_dbxref.getFeature().getUniqueName();
     
     final String sql = 
       "DELETE FROM feature_dbxref "+
       "WHERE dbxref_id="+
       "(SELECT dbxref_id FROM dbxref WHERE accession='"+
-         feature_dbxref.getDbxref().getAccession()+"' "+
+         feature_dbxref.getDbXRef().getAccession()+"' "+
       "AND db_id=(SELECT db_id FROM db WHERE name='"+
-         feature_dbxref.getDbxref().getDb().getName()+"'))"+
+         feature_dbxref.getDbXRef().getDb().getName()+"'))"+
       "AND feature_id=(SELECT feature_id FROM "+
              "feature WHERE  uniquename='"+uniquename+"')";
     
@@ -987,7 +987,7 @@ public class JdbcDAO
    */
   private void insertFeatureAlias(final FeatureSynonym feature_synonym)
   {
-    final String uniquename   = feature_synonym.getFeature().getUniquename();
+    final String uniquename   = feature_synonym.getFeature().getUniqueName();
     final String synonym_name = feature_synonym.getSynonym().getName();
       
     String sql;
@@ -1007,8 +1007,8 @@ public class JdbcDAO
       if(!exists)
       {
         // create a new synonym name
-        String type_id = Long.toString(feature_synonym.getSynonym().getCvterm()
-            .getCvtermId());
+        String type_id = Long.toString(feature_synonym.getSynonym().getCvTerm()
+            .getCvTermId());
 
         sql = "INSERT INTO "
             + "synonym (name, type_id, synonym_sgml) values ( '" + synonym_name
@@ -1044,7 +1044,7 @@ public class JdbcDAO
    */
   private void deleteFeatureSynonym(final FeatureSynonym feature_synonym)
   {
-    final String uniquename   = feature_synonym.getFeature().getUniquename();
+    final String uniquename   = feature_synonym.getFeature().getUniqueName();
     final String synonym_name = feature_synonym.getSynonym().getName();
     String sql = "SELECT synonym_id FROM synonym WHERE "+
                  "synonym.name='"+synonym_name+"'";
@@ -1091,15 +1091,15 @@ public class JdbcDAO
     sqlBuff.append("UPDATE feature_relationship ");
     sqlBuff.append(" SET ");
     sqlBuff.append(" rank="+feature_relationship.getRank()+", ");
-    sqlBuff.append(" type_id="+feature_relationship.getCvterm().getCvtermId());
+    sqlBuff.append(" type_id="+feature_relationship.getCvTerm().getCvTermId());
     sqlBuff.append(" WHERE ");
     sqlBuff.append("subject_id=");
     sqlBuff.append("( SELECT feature_id FROM feature WHERE uniquename='");
-    sqlBuff.append(feature_relationship.getSubject().getUniquename()+"' ) ");
+    sqlBuff.append(feature_relationship.getSubject().getUniqueName()+"' ) ");
     sqlBuff.append("AND ");
     sqlBuff.append("object_id=");
     sqlBuff.append("( SELECT feature_id FROM feature WHERE uniquename='");
-    sqlBuff.append(feature_relationship.getObject().getUniquename()+"' ) ");
+    sqlBuff.append(feature_relationship.getObject().getUniqueName()+"' ) ");
  
     String sql = sqlBuff.toString();
 
diff --git a/uk/ac/sanger/artemis/chado/Synonym.java b/uk/ac/sanger/artemis/chado/Synonym.java
index 3c8eee486..accdfde2e 100644
--- a/uk/ac/sanger/artemis/chado/Synonym.java
+++ b/uk/ac/sanger/artemis/chado/Synonym.java
@@ -33,7 +33,7 @@ public class Synonym
   // synonym
   private Integer synonym_id;
   private String name;
-  private Cvterm cvterm;
+  private CvTerm cvTerm;
   private String synonym_sgml;
   
   public Integer getSynonym_id()
@@ -56,14 +56,14 @@ public class Synonym
     this.name = name;
   }
   
-  public Cvterm getCvterm()
+  public CvTerm getCvTerm()
   {
-    return cvterm;
+    return cvTerm;
   }
 
-  public void setCvterm(Cvterm cvterm)
+  public void setCvTerm(CvTerm cvTerm)
   {
-    this.cvterm = cvterm;
+    this.cvTerm = cvTerm;
   }
 
   public String getSynonym_sgml()
diff --git a/uk/ac/sanger/artemis/components/genebuilder/GeneViewerPanel.java b/uk/ac/sanger/artemis/components/genebuilder/GeneViewerPanel.java
index ee4978908..e7c6ac275 100644
--- a/uk/ac/sanger/artemis/components/genebuilder/GeneViewerPanel.java
+++ b/uk/ac/sanger/artemis/components/genebuilder/GeneViewerPanel.java
@@ -20,7 +20,7 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  *
- * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/genebuilder/GeneViewerPanel.java,v 1.28 2006-08-31 12:41:57 tjc Exp $
+ * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/genebuilder/GeneViewerPanel.java,v 1.29 2006-09-01 09:27:38 tjc Exp $
  */
 
 package uk.ac.sanger.artemis.components.genebuilder;
@@ -30,6 +30,7 @@ import javax.swing.*;
 import java.awt.*;
 import java.awt.event.*;
 import java.util.List;
+import java.util.Vector;
 import java.util.Collections;
 import java.util.Hashtable;
 import java.util.Set;
@@ -696,12 +697,12 @@ public class GeneViewerPanel extends JPanel
       uk.ac.sanger.artemis.chado.Feature start_exon = 
         (uk.ac.sanger.artemis.chado.Feature)exons.get(0);
       FeatureLoc loc = uk.ac.sanger.artemis.chado.Feature.getFeatureLoc(
-           start_exon.getFeaturelocsForFeatureId(), chado_gene.getSrcfeature_id());
+           new Vector(start_exon.getFeaturelocsForFeatureId()), chado_gene.getSrcfeature_id());
       
       if(loc.getStrand() == -1)
       {
         FeatureLoc loc_last = uk.ac.sanger.artemis.chado.Feature.getFeatureLoc(
-            ((uk.ac.sanger.artemis.chado.Feature)exons.get(exons.size()-1)).getFeaturelocsForFeatureId(),
+            new Vector(((uk.ac.sanger.artemis.chado.Feature)exons.get(exons.size()-1)).getFeaturelocsForFeatureId()),
             chado_gene.getSrcfeature_id());
             
         if(loc.getFmin() < loc_last.getFmin())
@@ -713,7 +714,7 @@ public class GeneViewerPanel extends JPanel
         uk.ac.sanger.artemis.chado.Feature exon = 
           (uk.ac.sanger.artemis.chado.Feature)exons.get(j);
         loc = uk.ac.sanger.artemis.chado.Feature.getFeatureLoc(
-            exon.getFeaturelocsForFeatureId(), chado_gene.getSrcfeature_id());
+            new Vector(exon.getFeaturelocsForFeatureId()), chado_gene.getSrcfeature_id());
         
         int ex_start = border+(int)((loc.getFmin()+1-start)*fraction);
         int ex_end   = border+(int)((loc.getFmax()-start)*fraction);
@@ -1080,13 +1081,13 @@ public class GeneViewerPanel extends JPanel
    */
   private Color getColorFromAttributes(uk.ac.sanger.artemis.chado.Feature feature)
   {
-    List properties = feature.getFeaturepropList();
+    List properties = new Vector(feature.getFeaturepropList());
     for(int i=0; i<properties.size(); i++)
     {
       FeatureProp property = (FeatureProp)properties.get(i);
       
-      if(property.getCvterm().getName().equals("colour") ||
-         property.getCvterm().getName().equals("color") )
+      if(property.getCvTerm().getName().equals("colour") ||
+         property.getCvTerm().getName().equals("color") )
         return Options.getOptions().getColorFromColourNumber(Integer.parseInt(property.getValue()));
     }  
     return Color.CYAN;
@@ -1164,7 +1165,7 @@ public class GeneViewerPanel extends JPanel
       uk.ac.sanger.artemis.chado.Feature this_feature = 
         (uk.ac.sanger.artemis.chado.Feature)exons.get(i);
       FeatureLoc featureLoc = uk.ac.sanger.artemis.chado.Feature.getFeatureLoc(
-          this_feature.getFeaturelocsForFeatureId(), chado_gene.getSrcfeature_id());
+          new Vector(this_feature.getFeaturelocsForFeatureId()), chado_gene.getSrcfeature_id());
       
       int this_direction;
       if(featureLoc.getStrand() == 1)
diff --git a/uk/ac/sanger/artemis/util/DatabaseDocument.java b/uk/ac/sanger/artemis/util/DatabaseDocument.java
index 0c86bafb3..88a7edc44 100644
--- a/uk/ac/sanger/artemis/util/DatabaseDocument.java
+++ b/uk/ac/sanger/artemis/util/DatabaseDocument.java
@@ -39,6 +39,7 @@ import java.util.Hashtable;
 import java.util.Vector;
 import java.util.Enumeration;
 import java.util.List;
+import java.util.Collection;
 import java.util.Iterator;
 import javax.swing.JOptionPane;
 import javax.swing.JPasswordField;
@@ -455,15 +456,15 @@ public class DatabaseDocument extends Document
     for(int i = 0; i < feature_size; i++)
     {
       Feature feat = (Feature)featList.get(i);
-      String name       = feat.getUniquename();
+      String name       = feat.getUniqueName();
       String feature_id = Integer.toString(feat.getId());
 
       id_store.put(feature_id, name);
     }
     
     // get all dbrefs & synonyms
-    Hashtable dbxrefs = IBatisDAO.mergeDbxref(
-                 dao.getFeatureDbxrefByUniquename(null));
+    Hashtable dbxrefs = IBatisDAO.mergeDbXRef(
+                 dao.getFeatureDbXRefByUniquename(null));
     Hashtable synonym = getAllFeatureSynonyms(dao, null);
 
     // create gff byte stream
@@ -471,7 +472,7 @@ public class DatabaseDocument extends Document
     { 
       // select buffer based on feature type
       Feature feat = (Feature)featList.get(i);
-      long type_id      = feat.getCvterm().getCvtermId();
+      long type_id      = feat.getCvTerm().getCvTermId();
       String typeName   = getCvtermName(type_id, dao);
       this_buff = buffers[types.length];
       for(int j = 0; j < types.length; j++)
@@ -481,14 +482,14 @@ public class DatabaseDocument extends Document
       }
       
       
-      chadoToGFF(feat, parentFeature.getUniquename(),
+      chadoToGFF(feat, parentFeature.getUniqueName(),
                  dbxrefs, synonym,
                  id_store, dao, 
                  feat.getFeatureloc(), this_buff);
        
       if( i%10 == 0 || i == feature_size-1)
         progress_listener.progressMade("Read from database: " + 
-                                       feat.getUniquename());
+                                       feat.getUniqueName());
     }
 
     return buffers;
@@ -551,9 +552,9 @@ public class DatabaseDocument extends Document
     Feature feature = dao.getFeatureByUniqueName(search_gene);
     
     ChadoCanonicalGene chado_gene = new ChadoCanonicalGene();
-    id_store.put(Integer.toString(feature.getId()), feature.getUniquename());
+    id_store.put(Integer.toString(feature.getId()), feature.getUniqueName());
 
-    List featurelocs = feature.getFeaturelocsForFeatureId();
+    List featurelocs = new Vector(feature.getFeaturelocsForFeatureId());
     FeatureLoc featureloc = (FeatureLoc) featurelocs.get(0);
     int src_id = featureloc.getSrcfeature_id();
 
@@ -571,7 +572,7 @@ public class DatabaseDocument extends Document
                featureloc, buff);
 
     // get children of gene
-    List relations = feature.getFeatureRelationshipsForObjectId();
+    List relations = new Vector(feature.getFeatureRelationshipsForObjectId());
     
     for(int i = 0; i < relations.size(); i++)
     {
@@ -581,16 +582,17 @@ public class DatabaseDocument extends Document
       //transcript.setId(id);
       Feature transcript = dao.getFeatureById(id); //.getLazyFeature(transcript);
 
-      id_store.put(Integer.toString(transcript.getId()), transcript
-          .getUniquename());
+      id_store.put(Integer.toString(transcript.getId()), 
+          transcript.getUniqueName());
 
-      FeatureLoc loc = Feature.getFeatureLoc(transcript
-          .getFeaturelocsForFeatureId(), src_id);
-      chadoToGFF(transcript, feature.getUniquename(), null,
+      FeatureLoc loc = Feature.getFeatureLoc(new Vector(
+          transcript.getFeaturelocsForFeatureId()), src_id);
+      chadoToGFF(transcript, feature.getUniqueName(), null,
           null, id_store, dao, loc, buff);
 
       // get children of transcript - exons and pp
-      List transcipt_relations = transcript.getFeatureRelationshipsForObjectId();
+      List transcipt_relations = new Vector(
+          transcript.getFeatureRelationshipsForObjectId());
 
       for(int j = 0; j < transcipt_relations.size(); j++)
       {
@@ -600,10 +602,11 @@ public class DatabaseDocument extends Document
         //    .getSubject_id());
         Feature child = dao.getFeatureById(id); //dao.getLazyFeature(child);
 
-        id_store.put(Integer.toString(child.getId()), child.getUniquename());
+        id_store.put(Integer.toString(child.getId()), child.getUniqueName());
 
-        loc = Feature.getFeatureLoc(child.getFeaturelocsForFeatureId(),src_id);
-        chadoToGFF(child, transcript.getUniquename(), null,
+        loc = Feature.getFeatureLoc(
+            new Vector(child.getFeaturelocsForFeatureId()),src_id);
+        chadoToGFF(child, transcript.getUniqueName(), null,
                    null, id_store, dao, loc, buff);
       }
     }
@@ -635,10 +638,10 @@ public class DatabaseDocument extends Document
     
     int fmin          = featureloc.getFmin() + 1;
     int fmax          = featureloc.getFmax();
-    long type_id      = feat.getCvterm().getCvtermId();
+    long type_id      = feat.getCvTerm().getCvTermId();
     int strand        = featureloc.getStrand();
     int phase         = featureloc.getPhase();
-    String name       = feat.getUniquename();
+    String name       = feat.getUniqueName();
     String typeName   = getCvtermName(type_id, dao);
 
     String timelastmodified = Long.toString(feat.getTimelastmodified().getTime());
@@ -651,9 +654,9 @@ public class DatabaseDocument extends Document
     {
       FeatureRelationship feat_relationship = feat.getFeature_relationship();
       parent_id = Integer.toString(feat_relationship.getObject().getId());
-      long parent_type_id = feat_relationship.getCvterm().getCvtermId();
+      long parent_type_id = feat_relationship.getCvTerm().getCvTermId();
       
-      parent_relationship = feat_relationship.getCvterm().getName();
+      parent_relationship = feat_relationship.getCvTerm().getName();
       
       rank= feat_relationship.getRank();
       if(parent_relationship == null)
@@ -661,15 +664,15 @@ public class DatabaseDocument extends Document
     }
     else if(feat.getFeatureRelationshipsForSubjectId() != null)
     {
-      List relations = feat.getFeatureRelationshipsForSubjectId();
+      List relations = new Vector(feat.getFeatureRelationshipsForSubjectId());
       for(int i=0; i<relations.size(); i++)
       {
         FeatureRelationship feat_relationship = 
                             (FeatureRelationship)relations.get(i);
         parent_id = Integer.toString(feat_relationship.getObject().getId());
-        System.out.println("HERE   "+i+" "+feat_relationship.getCvterm().getName()+ " "+
+        System.out.println("HERE   "+i+" "+feat_relationship.getCvTerm().getName()+ " "+
             feat_relationship.getObject().getId()+" "+feat_relationship.getSubject().getId()+ " parent_id="+ parent_id);
-        parent_relationship = feat_relationship.getCvterm().getName();
+        parent_relationship = feat_relationship.getCvTerm().getName();
       }
     }
           
@@ -784,7 +787,7 @@ public class DatabaseDocument extends Document
       {
         alias = (FeatureSynonym)v_synonyms.get(j);
         
-        this_buff.append( getCvtermName(alias.getSynonym().getCvterm().getCvtermId(), dao) + "=" );
+        this_buff.append( getCvtermName(alias.getSynonym().getCvTerm().getCvTermId(), dao) + "=" );
         //this_buff.append(alias.getSynonym().getCvterm().getName()+"=");
         this_buff.append(alias.getSynonym().getName());
         
@@ -838,13 +841,13 @@ public class DatabaseDocument extends Document
 
     try
     {
-      List cvtem_list = dao.getCvterm();
+      List cvtem_list = dao.getCvTerm();
       Iterator it = cvtem_list.iterator();
 
       while(it.hasNext())
       {
-        Cvterm cv = (Cvterm)it.next();
-        cvterm.put(new Long(cv.getCvtermId()), cv.getName());
+        CvTerm cv = (CvTerm)it.next();
+        cvterm.put(new Long(cv.getCvTermId()), cv.getName());
       }
     }
     catch(RuntimeException sqle)
@@ -868,7 +871,7 @@ public class DatabaseDocument extends Document
     Feature feature = dao.getFeatureById(Integer.parseInt(feature_id));
  
     buff.append("##FASTA\n>");
-    buff.append(feature.getUniquename());
+    buff.append(feature.getUniqueName());
     buff.append("\n");
     buff.append(feature.getResidues());
     return buff;
@@ -941,9 +944,9 @@ public class DatabaseDocument extends Document
         while(it_residue_features.hasNext())
         {
           Feature feature = (Feature)it_residue_features.next();
-          String typeName = getCvtermName(feature.getCvterm().getCvtermId(), getDAO()); 
+          String typeName = getCvtermName(feature.getCvTerm().getCvTermId(), getDAO()); 
           
-          db.put(schema + " - " + typeName + " - " + feature.getUniquename(),
+          db.put(schema + " - " + typeName + " - " + feature.getUniqueName(),
                  Integer.toString(feature.getId()));
         }
       }
@@ -1077,19 +1080,19 @@ public class DatabaseDocument extends Document
             {
               Feature feature = (Feature)tsn.getFeatureObject();
               
-              if(feature.getUniquename() != null)
+              if(feature.getUniqueName() != null)
               {
                 final String uniquename;
                 if(tsn.getOldUniquename() != null)
                   uniquename = (String)tsn.getOldUniquename();
                 else
-                  uniquename = feature.getUniquename();
+                  uniquename = feature.getUniqueName();
                 
                 Feature old_feature
                     = dao.getFeatureByUniqueName(uniquename);
                 feature.setId( old_feature.getId() );
                 
-                tsn.setOldUniquename(feature.getUniquename());
+                tsn.setOldUniquename(feature.getUniqueName());
               }
             }
             dao.merge(tsn.getFeatureObject());
@@ -1231,7 +1234,7 @@ public class DatabaseDocument extends Document
         dao = new IBatisDAO(src.getPfield());
       
       Feature feature = new Feature();
-      feature.setUniquename(args[0]);
+      feature.setUniqueName(args[0]);
       List schemas = new Vector();
       schemas.add(args[1]);
       List featureList = new Vector();
@@ -1242,17 +1245,17 @@ public class DatabaseDocument extends Document
         feature = (Feature)featureList.get(i);
         
         String abb  = feature.getOrganism().getAbbreviation();
-        String type = feature.getCvterm().getName();
+        String type = feature.getCvTerm().getName();
         int fmin    = feature.getFeatureloc().getFmin() + 1;
         int fmax    = feature.getFeatureloc().getFmax();
         String featprop = 
-          ((FeatureProp)feature.getFeaturepropList().get(0)).getCvterm().getName();
+          ((FeatureProp)(new Vector(feature.getFeaturepropList()).get(0))).getCvTerm().getName();
         
         System.out.print(fmin+".."+fmax);
         System.out.print(" "+type);
         System.out.print(" "+featprop);
         System.out.print(" "+feature.getFeatureloc().getStrand());
-        System.out.print(" "+feature.getUniquename());
+        System.out.print(" "+feature.getUniqueName());
         System.out.print(" "+abb);
         System.out.println(" "+Integer.toString(feature.getId()));
         
-- 
GitLab