inprogress
[jalview.git] / forester / java / src / org / forester / phylogeny / data / Sequence.java
index 27b3b0c..b9e6aa3 100644 (file)
@@ -5,7 +5,7 @@
 // Copyright (C) 2008-2009 Christian M. Zmasek
 // Copyright (C) 2008-2009 Burnham Institute for Medical Research
 // All rights reserved
-// 
+//
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 // Lesser General Public License for more details.
-// 
+//
 // You should have received a copy of the GNU Lesser General Public
 // License along with this library; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
 //
 // Contact: phylosoft @ gmail . com
-// WWW: www.phylosoft.org/forester
+// WWW: https://sites.google.com/site/cmzmasek/home/software/forester
 
 package org.forester.phylogeny.data;
 
@@ -70,6 +70,7 @@ public class Sequence implements PhylogenyData, MultipleUris {
         getAnnotations().add( annotation );
     }
 
+    @Override
     public void addUri( final Uri uri ) {
         if ( getUris() == null ) {
             setUris( new ArrayList<Uri>() );
@@ -81,6 +82,7 @@ public class Sequence implements PhylogenyData, MultipleUris {
         _seq_relations.add( sr );
     }
 
+    @Override
     public StringBuffer asSimpleText() {
         final StringBuffer sb = new StringBuffer();
         if ( getAccession() != null ) {
@@ -98,6 +100,7 @@ public class Sequence implements PhylogenyData, MultipleUris {
         return sb;
     }
 
+    @Override
     public StringBuffer asText() {
         return asSimpleText();
     }
@@ -106,11 +109,17 @@ public class Sequence implements PhylogenyData, MultipleUris {
      * Not a deep copy.
      * 
      */
+    @Override
     public PhylogenyData copy() {
         final Sequence seq = new Sequence();
         seq.setAnnotations( getAnnotations() );
         seq.setName( getName() );
-        seq.setSymbol( getSymbol() );
+        try {
+            seq.setSymbol( getSymbol() );
+        }
+        catch ( final PhyloXmlDataFormatException e ) {
+            e.printStackTrace();
+        }
         seq.setMolecularSequence( getMolecularSequence() );
         seq.setMolecularSequenceAligned( isMolecularSequenceAligned() );
         seq.setLocation( getLocation() );
@@ -120,7 +129,12 @@ public class Sequence implements PhylogenyData, MultipleUris {
         else {
             seq.setAccession( null );
         }
-        seq.setType( getType() );
+        try {
+            seq.setType( getType() );
+        }
+        catch ( final PhyloXmlDataFormatException e ) {
+            e.printStackTrace();
+        }
         if ( getUris() != null ) {
             seq.setUris( new ArrayList<Uri>() );
             for( final Uri uri : getUris() ) {
@@ -213,10 +227,12 @@ public class Sequence implements PhylogenyData, MultipleUris {
         return _type;
     }
 
+    @Override
     public List<Uri> getUris() {
         return _uris;
     }
 
+    @Override
     public Uri getUri( final int index ) {
         return getUris().get( index );
     }
@@ -247,14 +263,25 @@ public class Sequence implements PhylogenyData, MultipleUris {
         setMolecularSequenceAligned( false );
         setLocation( "" );
         setAccession( null );
-        setSymbol( "" );
-        setType( "" );
+        try {
+            setSymbol( "" );
+        }
+        catch ( final PhyloXmlDataFormatException e ) {
+            e.printStackTrace();
+        }
+        try {
+            setType( "" );
+        }
+        catch ( final PhyloXmlDataFormatException e ) {
+            e.printStackTrace();
+        }
         setDomainArchitecture( null );
         setUris( null );
         setSequenceRelations( null );
         setSourceId( null );
     }
 
+    @Override
     public boolean isEqual( final PhylogenyData data ) {
         if ( this == data ) {
             return true;
@@ -299,24 +326,26 @@ public class Sequence implements PhylogenyData, MultipleUris {
         _source_id = source_id;
     }
 
-    public void setSymbol( final String symbol ) {
+    public void setSymbol( final String symbol ) throws PhyloXmlDataFormatException {
         if ( !ForesterUtil.isEmpty( symbol ) && !PhyloXmlUtil.SEQUENCE_SYMBOL_PATTERN.matcher( symbol ).matches() ) {
             throw new PhyloXmlDataFormatException( "illegal sequence symbol: [" + symbol + "]" );
         }
         _symbol = symbol;
     }
 
-    public void setType( final String type ) {
+    public void setType( final String type ) throws PhyloXmlDataFormatException {
         if ( !ForesterUtil.isEmpty( type ) && !PhyloXmlUtil.SEQUENCE_TYPES.contains( type ) ) {
             throw new PhyloXmlDataFormatException( "illegal sequence type: [" + type + "]" );
         }
         _type = type;
     }
 
+    @Override
     public void setUris( final List<Uri> uris ) {
         _uris = uris;
     }
 
+    @Override
     public StringBuffer toNHX() {
         final StringBuffer sb = new StringBuffer();
         if ( getName().length() > 0 ) {
@@ -333,6 +362,7 @@ public class Sequence implements PhylogenyData, MultipleUris {
         return sb;
     }
 
+    @Override
     public void toPhyloXML( final Writer writer, final int level, final String indentation ) throws IOException {
         if ( isEmpty() ) {
             return;