in progress
[jalview.git] / forester / java / src / org / forester / phylogeny / data / Identifier.java
index 62dc722..97297f8 100644 (file)
@@ -32,24 +32,36 @@ import org.forester.io.parsers.nhx.NHXtags;
 import org.forester.io.parsers.phyloxml.PhyloXmlMapping;
 import org.forester.util.ForesterUtil;
 
-public class Identifier implements PhylogenyData {
+public final class Identifier implements PhylogenyData {
 
-    final String _value;
-    final String _provider;
+    final public static String NCBI   = "ncbi";
+    final public static String REFSEQ = "refseq";
+    final public static String SP     = "sp";
+    final private String       _value;
+    final private String       _provider;
+    final private String       _value_provider;
 
     public Identifier() {
         _value = "";
         _provider = "";
+        _value_provider = "";
     }
 
     public Identifier( final String value ) {
         _value = value;
         _provider = "";
+        _value_provider = value;
     }
 
     public Identifier( final String value, final String provider ) {
         _value = value;
         _provider = provider;
+        if ( provider != null ) {
+            _value_provider = value + provider;
+        }
+        else {
+            _value_provider = value;
+        }
     }
 
     @Override
@@ -69,6 +81,10 @@ public class Identifier implements PhylogenyData {
         return sb;
     }
 
+    public String getValuePlusProvider() {
+        return _value_provider;
+    }
+
     @Override
     public PhylogenyData copy() {
         return new Identifier( getValue(), getProvider() );
@@ -101,10 +117,7 @@ public class Identifier implements PhylogenyData {
 
     @Override
     public int hashCode() {
-        if ( getProvider() != null ) {
-            return ( getProvider() + getValue() ).hashCode();
-        }
-        return getValue().hashCode();
+        return _value_provider.hashCode();
     }
 
     @Override