2 // FORESTER -- software libraries and applications
3 // for evolutionary biology research and applications.
5 // Copyright (C) 2008-2009 Christian M. Zmasek
6 // Copyright (C) 2008-2009 Burnham Institute for Medical Research
9 // This library is free software; you can redistribute it and/or
10 // modify it under the terms of the GNU Lesser General Public
11 // License as published by the Free Software Foundation; either
12 // version 2.1 of the License, or (at your option) any later version.
14 // This library is distributed in the hope that it will be useful,
15 // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 // Lesser General Public License for more details.
19 // You should have received a copy of the GNU Lesser General Public
20 // License along with this library; if not, write to the Free Software
21 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
23 // Contact: phylosoft @ gmail . com
24 // WWW: www.phylosoft.org/forester
26 package org.forester.phylogeny.data;
28 import java.io.IOException;
29 import java.io.Writer;
32 import org.forester.io.parsers.phyloxml.PhyloXmlMapping;
34 public class Uri implements PhylogenyData {
36 final private URI _uri;
37 final private String _description;
38 final private String _type;
40 public Uri( final String uri_str, final String description, final String type ) {
41 if ( uri_str == null ) {
42 throw new IllegalArgumentException( "attempt to create Uri from null" );
44 _uri = URI.create( uri_str );
45 _description = description;
49 public Uri( final URI uri ) {
51 throw new IllegalArgumentException( "attempt to create Uri from null URI" );
58 public Uri( final URI uri, final String description, final String type ) {
60 throw new IllegalArgumentException( "attempt to create Uri from null URI" );
63 _description = description;
68 public StringBuffer asSimpleText() {
69 return new StringBuffer( getValue().toString() );
73 public StringBuffer asText() {
74 final StringBuffer sb = new StringBuffer();
76 sb.append( getDescription() );
78 sb.append( getType() );
80 sb.append( getValue().toString() );
85 public PhylogenyData copy() {
86 return new Uri( getValue().toString(), new String( getDescription() ), new String( getType() ) );
89 public String getDescription() {
93 public String getType() {
97 public URI getValue() {
102 public boolean isEqual( final PhylogenyData data ) {
103 throw new UnsupportedOperationException();
107 public StringBuffer toNHX() {
108 throw new UnsupportedOperationException();
112 public void toPhyloXML( final Writer writer, final int level, final String indentation ) throws IOException {
113 PhylogenyDataUtil.appendElement( writer,
115 getValue().toString(),
116 PhyloXmlMapping.TYPE_ATTR,
118 PhyloXmlMapping.URI_DESC_ATTR,
124 public String toString() {
125 return asSimpleText().toString();