X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=forester%2Fjava%2Fsrc%2Forg%2Fforester%2Fphylogeny%2Fdata%2FIdentifier.java;h=39997e6014ef123e485f0667d1311919643a2d53;hb=cdad7364d81a04e88c3c7dc998cceede129286f4;hp=33c3a8bbc3b912cc4a76061e84e5226452116352;hpb=48f7a89be9d34f1930a1f863e608235cc27184c5;p=jalview.git diff --git a/forester/java/src/org/forester/phylogeny/data/Identifier.java b/forester/java/src/org/forester/phylogeny/data/Identifier.java index 33c3a8b..39997e6 100644 --- a/forester/java/src/org/forester/phylogeny/data/Identifier.java +++ b/forester/java/src/org/forester/phylogeny/data/Identifier.java @@ -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 @@ -15,47 +15,57 @@ // 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; import java.io.IOException; import java.io.Writer; -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 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 public StringBuffer asSimpleText() { return new StringBuffer( getValue() ); } + @Override public StringBuffer asText() { final StringBuffer sb = new StringBuffer(); if ( !ForesterUtil.isEmpty( getProvider() ) ) { @@ -67,6 +77,11 @@ public class Identifier implements PhylogenyData { return sb; } + public String getValuePlusProvider() { + return _value_provider; + } + + @Override public PhylogenyData copy() { return new Identifier( getValue(), getProvider() ); } @@ -98,12 +113,10 @@ public class Identifier implements PhylogenyData { @Override public int hashCode() { - if ( getProvider() != null ) { - return ( getProvider() + getValue() ).hashCode(); - } - return getValue().hashCode(); + return _value_provider.hashCode(); } + @Override public boolean isEqual( final PhylogenyData data ) { if ( this == data ) { return true; @@ -118,14 +131,12 @@ public class Identifier implements PhylogenyData { return ( a.getValue().equals( getValue() ) ); } + @Override public StringBuffer toNHX() { - final StringBuffer sb = new StringBuffer(); - sb.append( ":" ); - sb.append( NHXtags.NODE_IDENTIFIER ); - sb.append( ForesterUtil.replaceIllegalNhxCharacters( getValue() ) ); - return sb; + throw new UnsupportedOperationException(); } + @Override public void toPhyloXML( final Writer writer, final int level, final String indentation ) throws IOException { if ( !org.forester.util.ForesterUtil.isEmpty( getProvider() ) ) { PhylogenyDataUtil.appendElement( writer,