1 package jalview.ext.forester.io;
3 import jalview.ext.archaeopteryx.AptxInit;
4 import jalview.ext.archaeopteryx.Tree;
5 import jalview.ext.treeviewer.TreeI;
6 import jalview.ext.treeviewer.TreeParserI;
9 import java.io.IOException;
11 import org.forester.io.parsers.PhylogenyParser;
12 import org.forester.io.parsers.nexus.NexusPhylogeniesParser;
13 import org.forester.io.parsers.phyloxml.PhyloXmlParser;
14 import org.forester.io.parsers.util.PhylogenyParserException;
15 import org.forester.phylogeny.Phylogeny;
17 public class ForesterParser
18 implements TreeParserI
20 private final PhylogenyParser parser;
22 private TreeI[] parsedTrees;
24 protected ForesterParser(PhylogenyParser foresterParser, File file)
25 throws PhylogenyParserException, IOException
27 parser = foresterParser;
28 parser.setSource(file);
31 public static ForesterParser createNexusParser(File file)
32 throws PhylogenyParserException, IOException
34 NexusPhylogeniesParser nxParser = new NexusPhylogeniesParser();
35 nxParser.setReplaceUnderscores(
36 AptxInit.APTX_CONFIG.isReplaceUnderscoresInNhParsing());
37 nxParser.setIgnoreQuotes(false);
38 return new ForesterParser(new NexusPhylogeniesParser(), file);
41 public static ForesterParser createPhyloXmlParser(File file)
42 throws PhylogenyParserException, IOException
44 if (AptxInit.APTX_CONFIG.isValidatePhyloXmlAgainstSchema())
46 return new ForesterParser(
47 PhyloXmlParser.createPhyloXmlParserXsdValidating(), file);
51 return new ForesterParser(PhyloXmlParser.createPhyloXmlParser(),
56 // ParserBasedPhylogenyFactory.getInstance().create(foresterParser, source)
58 public TreeI[] parse() throws IOException
60 Phylogeny[] foresterTrees = parser.parse();
61 parsedTrees = new TreeI[foresterTrees.length];
63 for (int i = 0; i < foresterTrees.length; i++)
65 parsedTrees[i] = new Tree(foresterTrees[i]);
72 public void setSource(Object source) throws IOException
74 parser.setSource(source);
79 public String getName()
81 return parser.getName();
86 public TreeI[] getParsedTrees()