+ public List<PhylogenyNode> getNodes( final Pattern p ) {
+ if ( isEmpty() ) {
+ return null;
+ }
+ final List<PhylogenyNode> nodes = new ArrayList<PhylogenyNode>();
+ for( final PhylogenyNodeIterator iter = iteratorPreorder(); iter.hasNext(); ) {
+ final PhylogenyNode n = iter.next();
+ if ( n.getName() != null ) {
+ final Matcher m = p.matcher( n.getName() );
+ if ( m.find() ) {
+ nodes.add( n );
+ }
+ }
+ }
+ return nodes;
+ }
+