removed unneeded import
[jalview.git] / forester / java / src / org / forester / phylogeny / Phylogeny.java
index 379a933..86aae06 100644 (file)
@@ -37,6 +37,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.NoSuchElementException;
 import java.util.Vector;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import org.forester.io.parsers.nhx.NHXParser;
 import org.forester.io.writers.PhylogenyWriter;
@@ -56,6 +58,7 @@ import org.forester.phylogeny.iterators.PhylogenyNodeIterator;
 import org.forester.phylogeny.iterators.PostorderTreeIterator;
 import org.forester.phylogeny.iterators.PreorderTreeIterator;
 import org.forester.util.FailedConditionCheckException;
+import org.forester.util.ForesterUtil;
 
 public class Phylogeny {
 
@@ -324,7 +327,7 @@ public class Phylogeny {
      */
     public List<PhylogenyNode> getExternalNodes() {
         if ( _external_nodes_set == null ) {
-            _external_nodes_set = new ArrayList<>();
+            _external_nodes_set = new ArrayList<PhylogenyNode>();
             for( final PhylogenyNodeIterator it = iteratorPostorder(); it.hasNext(); ) {
                 final PhylogenyNode n = it.next();
                 if ( n.isExternal() ) {
@@ -438,7 +441,7 @@ public class Phylogeny {
         if ( isEmpty() ) {
             return null;
         }
-        final List<PhylogenyNode> nodes = new ArrayList<>();
+        final List<PhylogenyNode> nodes = new ArrayList<PhylogenyNode>();
         for( final PhylogenyNodeIterator iter = iteratorPreorder(); iter.hasNext(); ) {
             final PhylogenyNode n = iter.next();
             if ( n.getName().equals( name ) ) {
@@ -448,11 +451,28 @@ public class Phylogeny {
         return nodes;
     }
 
+    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;
+    }
+
     public List<PhylogenyNode> getNodesViaSequenceName( final String seq_name ) {
         if ( isEmpty() ) {
             return null;
         }
-        final List<PhylogenyNode> nodes = new ArrayList<>();
+        final List<PhylogenyNode> nodes = new ArrayList<PhylogenyNode>();
         for( final PhylogenyNodeIterator iter = iteratorPreorder(); iter.hasNext(); ) {
             final PhylogenyNode n = iter.next();
             if ( n.getNodeData().isHasSequence() && n.getNodeData().getSequence().getName().equals( seq_name ) ) {
@@ -466,7 +486,7 @@ public class Phylogeny {
         if ( isEmpty() ) {
             return null;
         }
-        final List<PhylogenyNode> nodes = new ArrayList<>();
+        final List<PhylogenyNode> nodes = new ArrayList<PhylogenyNode>();
         for( final PhylogenyNodeIterator iter = iteratorPreorder(); iter.hasNext(); ) {
             final PhylogenyNode n = iter.next();
             if ( n.getNodeData().isHasSequence() && n.getNodeData().getSequence().getSymbol().equals( seq_name ) ) {
@@ -480,7 +500,7 @@ public class Phylogeny {
         if ( isEmpty() ) {
             return null;
         }
-        final List<PhylogenyNode> nodes = new ArrayList<>();
+        final List<PhylogenyNode> nodes = new ArrayList<PhylogenyNode>();
         for( final PhylogenyNodeIterator iter = iteratorPreorder(); iter.hasNext(); ) {
             final PhylogenyNode n = iter.next();
             if ( n.getNodeData().isHasSequence() && n.getNodeData().getSequence().getGeneName().equals( seq_name ) ) {
@@ -494,7 +514,7 @@ public class Phylogeny {
         if ( isEmpty() ) {
             return null;
         }
-        final List<PhylogenyNode> nodes = new ArrayList<>();
+        final List<PhylogenyNode> nodes = new ArrayList<PhylogenyNode>();
         for( final PhylogenyNodeIterator iter = iteratorPreorder(); iter.hasNext(); ) {
             final PhylogenyNode n = iter.next();
             if ( n.getNodeData().isHasTaxonomy()
@@ -519,7 +539,7 @@ public class Phylogeny {
         if ( isEmpty() ) {
             return null;
         }
-        final List<PhylogenyNode> nodes = new ArrayList<>();
+        final List<PhylogenyNode> nodes = new ArrayList<PhylogenyNode>();
         for( final PhylogenyNodeIterator iter = iteratorPreorder(); iter.hasNext(); ) {
             final PhylogenyNode n = iter.next();
             if ( PhylogenyMethods.getSpecies( n ).equals( specname ) ) {
@@ -618,8 +638,8 @@ public class Phylogeny {
     public List<PhylogenyNode> getParalogousNodes( final PhylogenyNode n, final String[] taxonomyCodeRange ) {
         PhylogenyNode node = n;
         PhylogenyNode prev = null;
-        final List<PhylogenyNode> v = new ArrayList<>();
-        final Map<PhylogenyNode, List<String>> map = new HashMap<>();
+        final List<PhylogenyNode> v = new ArrayList<PhylogenyNode>();
+        final Map<PhylogenyNode, List<String>> map = new HashMap<PhylogenyNode, List<String>>();
         getTaxonomyMap( getRoot(), map );
         if ( !node.isExternal() || isEmpty() ) {
             return null;
@@ -650,7 +670,7 @@ public class Phylogeny {
 
     public Collection<SequenceRelation.SEQUENCE_RELATION_TYPE> getRelevantSequenceRelationTypes() {
         if ( _relevant_sequence_relation_types == null ) {
-            _relevant_sequence_relation_types = new Vector<>();
+            _relevant_sequence_relation_types = new Vector<SequenceRelation.SEQUENCE_RELATION_TYPE>();
         }
         return _relevant_sequence_relation_types;
     }
@@ -1188,7 +1208,7 @@ public class Phylogeny {
      * @return List node with the same taxonomy identifier
      */
     private List<PhylogenyNode> getNodeByTaxonomyID( final String taxonomyID, final List<PhylogenyNode> nodes ) {
-        final List<PhylogenyNode> retour = new ArrayList<>();
+        final List<PhylogenyNode> retour = new ArrayList<PhylogenyNode>();
         for( final PhylogenyNode node : nodes ) {
             if ( taxonomyID.equals( PhylogenyMethods.getTaxonomyIdentifier( node ) ) ) {
                 retour.add( node );
@@ -1206,7 +1226,7 @@ public class Phylogeny {
      * @return species contains in all leaf under the param node
      */
     private List<String> getSubNodeTaxonomy( final PhylogenyNode node ) {
-        final List<String> taxonomyList = new ArrayList<>();
+        final List<String> taxonomyList = new ArrayList<String>();
         final List<PhylogenyNode> childs = node.getAllExternalDescendants();
         String speciesId = null;
         for( final PhylogenyNode phylogenyNode : childs ) {