in progress
[jalview.git] / forester / java / src / org / forester / io / writers / PhylogenyWriter.java
index b41d8d7..512921e 100644 (file)
@@ -482,6 +482,13 @@ public final class PhylogenyWriter {
         writer.close();
     }
 
+    public void toPhyloXML( final Phylogeny phy, final int phyloxml_level, final File out_file ) throws IOException {
+        final Writer writer = new BufferedWriter( new PrintWriter( out_file ) );
+        toPhyloXML( writer, phy, phyloxml_level );
+        writer.flush();
+        writer.close();
+    }
+
     public void toPhyloXML( final Writer writer,
                             final List<Phylogeny> trees,
                             final int phyloxml_level,
@@ -552,12 +559,10 @@ public final class PhylogenyWriter {
                 }
                 PhylogenyDataUtil.appendOpen( getWriter(), PhyloXmlMapping.CLADE );
             }
-            if ( indentation != null ) {
-                PhyloXmlNodeWriter.toPhyloXml( getWriter(), node, getPhyloXmlLevel(), indentation.toString() );
-            }
-            else {
-                PhyloXmlNodeWriter.toPhyloXml( getWriter(), node, getPhyloXmlLevel(), "" );
-            }
+            PhyloXmlNodeWriter.toPhyloXml( getWriter(),
+                                           node,
+                                           getPhyloXmlLevel(),
+                                           indentation != null ? indentation.toString() : "" );
             if ( node.isExternal() ) {
                 getWriter().write( ForesterUtil.LINE_SEPARATOR );
                 if ( indentation != null ) {
@@ -594,7 +599,15 @@ public final class PhylogenyWriter {
                 if ( isIndentPhyloxml() ) {
                     getWriter().write( createIndentation().toString() );
                 }
-                PhylogenyDataUtil.appendOpen( getWriter(), PhyloXmlMapping.CLADE );
+                if ( node.isCollapse() ) {
+                    PhylogenyDataUtil.appendOpen( getWriter(),
+                                                  PhyloXmlMapping.CLADE,
+                                                  PhyloXmlMapping.NODE_COLLAPSE,
+                                                  "true" );
+                }
+                else {
+                    PhylogenyDataUtil.appendOpen( getWriter(), PhyloXmlMapping.CLADE );
+                }
             }
             else if ( ( getOutputFormt() == FORMAT.NHX ) || ( getOutputFormt() == FORMAT.NH ) ) {
                 getBuffer().append( "(" );