X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Fforester%2Fio%2FForesterParser.java;h=469463e0f1f1b1cfc0f92c7ba37c7268a9a3dc02;hb=4c6c7e560254d21741a5fa78392dcf7f310ef325;hp=851b12bbc9305d97c54c38d454cd0e1ecb217358;hpb=4994a7487ffa3ac5378520051f8e317a7954b204;p=jalview.git diff --git a/src/jalview/ext/forester/io/ForesterParser.java b/src/jalview/ext/forester/io/ForesterParser.java index 851b12b..469463e 100644 --- a/src/jalview/ext/forester/io/ForesterParser.java +++ b/src/jalview/ext/forester/io/ForesterParser.java @@ -1,42 +1,70 @@ package jalview.ext.forester.io; -import jalview.api.FeatureSettingsModelI; -import jalview.datamodel.AlignmentI; -import jalview.datamodel.SequenceI; +import jalview.ext.archaeopteryx.AptxInit; import jalview.ext.archaeopteryx.Tree; import jalview.ext.treeviewer.TreeI; import jalview.ext.treeviewer.TreeParserI; -import jalview.io.AlignmentFileReaderI; -import jalview.io.DataSourceType; -import jalview.io.FileParse; +import java.io.File; import java.io.IOException; import org.forester.io.parsers.PhylogenyParser; import org.forester.io.parsers.nexus.NexusPhylogeniesParser; import org.forester.io.parsers.phyloxml.PhyloXmlParser; +import org.forester.io.parsers.util.PhylogenyParserException; import org.forester.phylogeny.Phylogeny; -public class ForesterParser implements TreeParserI, AlignmentFileReaderI +public class ForesterParser + implements TreeParserI { private final PhylogenyParser parser; - protected ForesterParser(PhylogenyParser foresterParser, FileParse source) + private TreeI[] parsedTrees; + + protected ForesterParser(PhylogenyParser foresterParser, File file) + throws PhylogenyParserException, IOException { parser = foresterParser; + parser.setSource(file); + } + + public static ForesterParser createNexusParser(File file) + throws PhylogenyParserException, IOException + { + NexusPhylogeniesParser nxParser = new NexusPhylogeniesParser(); + nxParser.setReplaceUnderscores( + AptxInit.APTX_CONFIG.isReplaceUnderscoresInNhParsing()); + nxParser.setIgnoreQuotes(false); + return new ForesterParser(new NexusPhylogeniesParser(), file); + } + + public static ForesterParser createPhyloXmlParser(File file) + throws PhylogenyParserException, IOException + { + if (AptxInit.APTX_CONFIG.isValidatePhyloXmlAgainstSchema()) + { + return new ForesterParser( + PhyloXmlParser.createPhyloXmlParserXsdValidating(), file); + } + else + { + return new ForesterParser(PhyloXmlParser.createPhyloXmlParser(), + file); + } } + // ParserBasedPhylogenyFactory.getInstance().create(foresterParser, source) @Override public TreeI[] parse() throws IOException { Phylogeny[] foresterTrees = parser.parse(); - TreeI[] jalviewTrees = new TreeI[foresterTrees.length]; + parsedTrees = new TreeI[foresterTrees.length]; for (int i = 0; i < foresterTrees.length; i++) { - jalviewTrees[i] = new Tree(foresterTrees[i]); + parsedTrees[i] = new Tree(foresterTrees[i]); } - return jalviewTrees; + return parsedTrees; } @@ -53,78 +81,10 @@ public class ForesterParser implements TreeParserI, AlignmentFileReaderI return parser.getName(); } - @Override - public SequenceI[] getSeqsAsArray() - { - // TODO Auto-generated method stub - return null; - } @Override - public void addAnnotations(AlignmentI al) + public TreeI[] getParsedTrees() { - // TODO Auto-generated method stub - - } - - @Override - public void addGroups(AlignmentI al) - { - // TODO Auto-generated method stub - - } - - @Override - public void setSeqs(SequenceI[] sequencesArray) - { - // TODO Auto-generated method stub - - } - - @Override - public boolean hasWarningMessage() - { - // TODO Auto-generated method stub - return false; - } - - @Override - public String getWarningMessage() - { - // TODO Auto-generated method stub - return null; - } - - @Override - public String getInFile() - { - // TODO Auto-generated method stub - return null; - } - - @Override - public DataSourceType getDataSourceType() - { - // TODO Auto-generated method stub - return null; - } - - @Override - public FeatureSettingsModelI getFeatureColourScheme() - { - // TODO Auto-generated method stub - return null; - } - - public static ForesterParser createNexusParser(FileParse source) - { - return new ForesterParser(new NexusPhylogeniesParser(), source); - } - - public static ForesterParser createPhyloXmlParser(FileParse source) - { - // support non-xsd validating? - return new ForesterParser( - PhyloXmlParser.createPhyloXmlParserXsdValidating(), source); + return parsedTrees; } } \ No newline at end of file