X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=forester%2Fjava%2Fsrc%2Forg%2Fforester%2Fio%2Fparsers%2Fnhx%2FNHXParser.java;h=99a78bf7567aee88e28686c3656ea6939390c192;hb=1a6e8795d5cd4c9b137069cc47121689b83377ed;hp=d078f838c21a034f74dea7a02b55c27c4efac5b0;hpb=23e3f673b9ef683edbb2b76037e7e06ae79f616a;p=jalview.git diff --git a/forester/java/src/org/forester/io/parsers/nhx/NHXParser.java b/forester/java/src/org/forester/io/parsers/nhx/NHXParser.java index d078f83..99a78bf 100644 --- a/forester/java/src/org/forester/io/parsers/nhx/NHXParser.java +++ b/forester/java/src/org/forester/io/parsers/nhx/NHXParser.java @@ -61,39 +61,34 @@ import org.forester.util.ForesterUtil; public final class NHXParser implements PhylogenyParser { - public static final PhylogenyMethods.TAXONOMY_EXTRACTION TAXONOMY_EXTRACTION_DEFAULT = PhylogenyMethods.TAXONOMY_EXTRACTION.NO; - final static private boolean GUESS_ROOTEDNESS_DEFAULT = true; - final static private boolean GUESS_IF_SUPPORT_VALUES = true; - final static private boolean IGNORE_QUOTES_DEFAULT = false; - final static public boolean REPLACE_UNDERSCORES_DEFAULT = false; - private boolean _saw_closing_paren; - final static private byte STRING = 0; - final static private byte STRING_BUFFER = 1; - final static private byte CHAR_ARRAY = 2; - final static private byte BUFFERED_READER = 3; - private boolean _guess_rootedness; - private boolean _has_next; - private boolean _ignore_quotes; - private byte _input_type; - private int _source_length; - private PhylogenyNode _current_node; - private StringBuilder _current_anotation; - private Object _nhx_source; - private int _clade_level; - private List _phylogenies; - private Phylogeny _current_phylogeny; - private PhylogenyMethods.TAXONOMY_EXTRACTION _taxonomy_extraction; - private boolean _replace_underscores; - public final static Pattern UC_LETTERS_NUMBERS_PATTERN = Pattern - .compile( "^[A-Z0-9]+$" ); - public final static Pattern NUMBERS_ONLY_PATTERN = Pattern - .compile( "^[0-9\\.]+$" ); - public final static Pattern MB_PROB_PATTERN = Pattern - .compile( "prob=([^,]+)" ); - public final static Pattern MB_PROB_SD_PATTERN = Pattern - .compile( "prob_stddev=([^,]+)" ); - public final static Pattern MB_BL_PATTERN = Pattern - .compile( "length_median=([^,]+)" ); + public static final TAXONOMY_EXTRACTION TAXONOMY_EXTRACTION_DEFAULT = NHXParser.TAXONOMY_EXTRACTION.NO; + final static private boolean GUESS_ROOTEDNESS_DEFAULT = true; + final static private boolean GUESS_IF_SUPPORT_VALUES = true; + final static private boolean IGNORE_QUOTES_DEFAULT = false; + final static public boolean REPLACE_UNDERSCORES_DEFAULT = false; + private boolean _saw_closing_paren; + final static private byte STRING = 0; + final static private byte STRING_BUFFER = 1; + final static private byte CHAR_ARRAY = 2; + final static private byte BUFFERED_READER = 3; + private boolean _guess_rootedness; + private boolean _has_next; + private boolean _ignore_quotes; + private byte _input_type; + private int _source_length; + private PhylogenyNode _current_node; + private StringBuilder _current_anotation; + private Object _nhx_source; + private int _clade_level; + private List _phylogenies; + private Phylogeny _current_phylogeny; + private NHXParser.TAXONOMY_EXTRACTION _taxonomy_extraction; + private boolean _replace_underscores; + public final static Pattern UC_LETTERS_NUMBERS_PATTERN = Pattern.compile( "^[A-Z0-9]+$" ); + public final static Pattern NUMBERS_ONLY_PATTERN = Pattern.compile( "^[0-9\\.]+$" ); + public final static Pattern MB_PROB_PATTERN = Pattern.compile( "prob=([^,]+)" ); + public final static Pattern MB_PROB_SD_PATTERN = Pattern.compile( "prob_stddev=([^,]+)" ); + public final static Pattern MB_BL_PATTERN = Pattern.compile( "length_median=([^,]+)" ); public NHXParser() { init(); @@ -198,7 +193,7 @@ public final class NHXParser implements PhylogenyParser { return _source_length; } - public PhylogenyMethods.TAXONOMY_EXTRACTION getTaxonomyExtraction() { + public NHXParser.TAXONOMY_EXTRACTION getTaxonomyExtraction() { return _taxonomy_extraction; } @@ -272,6 +267,8 @@ public final class NHXParser implements PhylogenyParser { setPhylogenies( new ArrayList() ); setCladeLevel( 0 ); newCurrentAnotation(); + setCurrentPhylogeny( null ); + setCurrentNode( null ); int i = 0; while ( true ) { char c = '\b'; @@ -401,10 +398,6 @@ public final class NHXParser implements PhylogenyParser { return getPhylogeniesAsArray(); } // parse() - public Phylogeny parseNext() throws IOException, NHXFormatException { - return null; - } - /** * Called if a closing paren is encountered. * @@ -607,7 +600,7 @@ public final class NHXParser implements PhylogenyParser { _source_length = source_length; } - public void setTaxonomyExtraction( final PhylogenyMethods.TAXONOMY_EXTRACTION taxonomy_extraction ) { + public void setTaxonomyExtraction( final NHXParser.TAXONOMY_EXTRACTION taxonomy_extraction ) { _taxonomy_extraction = taxonomy_extraction; } @@ -647,10 +640,10 @@ public final class NHXParser implements PhylogenyParser { public static void parseNHX( String s, final PhylogenyNode node_to_annotate, - final PhylogenyMethods.TAXONOMY_EXTRACTION taxonomy_extraction, + final NHXParser.TAXONOMY_EXTRACTION taxonomy_extraction, final boolean replace_underscores ) throws NHXFormatException, PhyloXmlDataFormatException { - if ( ( taxonomy_extraction != PhylogenyMethods.TAXONOMY_EXTRACTION.NO ) && replace_underscores ) { + if ( ( taxonomy_extraction != NHXParser.TAXONOMY_EXTRACTION.NO ) && replace_underscores ) { throw new IllegalArgumentException( "cannot extract taxonomies and replace under scores at the same time" ); } if ( ( s != null ) && ( s.length() > 0 ) ) { @@ -690,7 +683,7 @@ public final class NHXParser implements PhylogenyParser { if ( !s.startsWith( ":" ) ) { node_to_annotate.setName( t.nextToken() ); if ( !replace_underscores - && ( !is_nhx && ( taxonomy_extraction != PhylogenyMethods.TAXONOMY_EXTRACTION.NO ) ) ) { + && ( !is_nhx && ( taxonomy_extraction != NHXParser.TAXONOMY_EXTRACTION.NO ) ) ) { final String tax = ParserUtils.extractTaxonomyCodeFromNodeName( node_to_annotate.getName(), taxonomy_extraction ); if ( !ForesterUtil.isEmpty( tax ) ) { @@ -858,4 +851,8 @@ public final class NHXParser implements PhylogenyParser { final int blu = ForesterUtil.limitRangeForColor( Integer.parseInt( st.nextToken() ) ); return new Color( red, green, blu ); } + + public static enum TAXONOMY_EXTRACTION { + NO, YES, PFAM_STYLE_ONLY; + } }