import org.forester.io.parsers.nhx.NHXFormatException;
import org.forester.io.parsers.nhx.NHXParser;
import org.forester.phylogeny.data.BranchData;
+import org.forester.phylogeny.data.Confidence;
import org.forester.phylogeny.data.NodeData;
+import org.forester.phylogeny.data.PhylogenyDataUtil;
import org.forester.phylogeny.iterators.ChildNodeIteratorForward;
import org.forester.phylogeny.iterators.PhylogenyNodeIterator;
import org.forester.phylogeny.iterators.PreorderTreeIterator;
public class PhylogenyNode implements PhylogenyNodeI, Comparable<PhylogenyNode> {
- /** Value of -99.0 is used as default value. */
- public final static double DISTANCE_DEFAULT = -1024.0;
- private static int _node_count = 0;
+ private static int _node_count = 0;
private byte _indicator;
private int _id;
private int _sum_ext_nodes;
_x = 0;
_y = 0;
//_node_name = "";
- _distance_parent = PhylogenyNode.DISTANCE_DEFAULT;
+ _distance_parent = PhylogenyDataUtil.BRANCH_LENGTH_DEFAULT;
_collapse = false;
_link = null;
_branch_data = null;
// ---------------------------------------------------------
// Writing of Nodes to Strings
// ---------------------------------------------------------
- final public String toNewHampshire( final boolean simple_nh, final boolean write_distance_to_parent ) {
+ final public String toNewHampshire( final boolean simple_nh,
+ final boolean write_distance_to_parent,
+ final NH_CONVERSION_SUPPORT_VALUE_STYLE svs ) {
final StringBuilder sb = new StringBuilder();
String data = "";
- if ( !ForesterUtil.isEmpty( getName() ) ) {
+ if ( ( svs == NH_CONVERSION_SUPPORT_VALUE_STYLE.AS_INTERNAL_NODE_NAMES ) && !isExternal() ) {
+ if ( getBranchData().isHasConfidences()
+ && ( getBranchData().getConfidence( 0 ).getValue() != Confidence.CONFIDENCE_DEFAULT_VALUE ) ) {
+ data = String.valueOf( getBranchData().getConfidence( 0 ).getValue() );
+ }
+ }
+ else if ( !ForesterUtil.isEmpty( getName() ) ) {
data = getName();
}
else if ( getNodeData().isHasTaxonomy() ) {
sb.append( data );
}
}
- if ( ( getDistanceToParent() != PhylogenyNode.DISTANCE_DEFAULT ) && write_distance_to_parent ) {
+ if ( write_distance_to_parent && ( getDistanceToParent() != PhylogenyDataUtil.BRANCH_LENGTH_DEFAULT ) ) {
sb.append( ":" );
sb.append( getDistanceToParent() );
}
+ if ( ( svs == NH_CONVERSION_SUPPORT_VALUE_STYLE.IN_SQUARE_BRACKETS ) && !isExternal()
+ && getBranchData().isHasConfidences()
+ && ( getBranchData().getConfidence( 0 ).getValue() != Confidence.CONFIDENCE_DEFAULT_VALUE ) ) {
+ sb.append( "[" );
+ sb.append( getBranchData().getConfidence( 0 ).getValue() );
+ sb.append( "]" );
+ }
return sb.toString();
}
sb.append( name );
}
}
- if ( getDistanceToParent() != PhylogenyNode.DISTANCE_DEFAULT ) {
+ if ( getDistanceToParent() != PhylogenyDataUtil.BRANCH_LENGTH_DEFAULT ) {
sb.append( ":" );
sb.append( getDistanceToParent() );
}