JAL-3210 Improvements to eclipse detection. New src tree and SwingJS updated from...
[jalview.git] / src / jalview / ext / so / SequenceOntology.java
index af80b7a..5a86fa1 100644 (file)
@@ -1,3 +1,23 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ * 
+ * This file is part of Jalview.
+ * 
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License 
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *  
+ * Jalview is distributed in the hope that it will be useful, but 
+ * WITHOUT ANY WARRANTY; without even the implied warranty 
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+ * PURPOSE.  See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
 package jalview.ext.so;
 
 import jalview.io.gff.SequenceOntologyI;
@@ -62,10 +82,10 @@ public class SequenceOntology implements SequenceOntologyI
    */
   public SequenceOntology()
   {
-    termsFound = new ArrayList<String>();
-    termsNotFound = new ArrayList<String>();
-    termsByDescription = new HashMap<String, Term>();
-    termIsA = new HashMap<Term, List<Term>>();
+    termsFound = new ArrayList<>();
+    termsNotFound = new ArrayList<>();
+    termsByDescription = new HashMap<>();
+    termIsA = new HashMap<>();
 
     loadOntologyZipFile("so-xp-simple.obo");
   }
@@ -77,13 +97,13 @@ public class SequenceOntology implements SequenceOntologyI
    */
   protected void loadOntologyZipFile(String ontologyFile)
   {
+    long now = System.currentTimeMillis();
     ZipInputStream zipStream = null;
     try
     {
       String zipFile = ontologyFile + ".zip";
-      System.out.println("Loading Sequence Ontology from " + zipFile);
-      InputStream inStream = this.getClass().getResourceAsStream(
-              "/" + zipFile);
+      InputStream inStream = this.getClass()
+              .getResourceAsStream("/" + zipFile);
       zipStream = new ZipInputStream(new BufferedInputStream(inStream));
       ZipEntry entry;
       while ((entry = zipStream.getNextEntry()) != null)
@@ -93,6 +113,9 @@ public class SequenceOntology implements SequenceOntologyI
           loadOboFile(zipStream);
         }
       }
+      long elapsed = System.currentTimeMillis() - now;
+      System.out.println("Loaded Sequence Ontology from " + zipFile + " ("
+              + elapsed + "ms)");
     } catch (Exception e)
     {
       e.printStackTrace();
@@ -128,8 +151,8 @@ public class SequenceOntology implements SequenceOntologyI
    * @throws ParseException
    * @throws IOException
    */
-  protected void loadOboFile(InputStream is) throws ParseException,
-          IOException
+  protected void loadOboFile(InputStream is)
+          throws ParseException, IOException
   {
     BufferedReader oboFile = new BufferedReader(new InputStreamReader(is));
     OboParser parser = new OboParser();
@@ -172,9 +195,9 @@ public class SequenceOntology implements SequenceOntologyI
             }
             else
             {
-            System.err.println("Warning: " + term.getName()
-                    + " has replaced " + replaced.getName()
-                    + " for lookup of '" + description + "'");
+              System.err.println("Warning: " + term.getName()
+                      + " has replaced " + replaced.getName()
+                      + " for lookup of '" + description + "'");
             }
           }
           termsByDescription.put(description, term);
@@ -197,8 +220,8 @@ public class SequenceOntology implements SequenceOntologyI
     {
       try
       {
-      if (Boolean.TRUE.equals(ann.getProperty("is_obsolete")))
-      {
+        if (Boolean.TRUE.equals(ann.getProperty("is_obsolete")))
+        {
           return true;
         }
       } catch (NoSuchElementException e)
@@ -381,7 +404,7 @@ public class SequenceOntology implements SequenceOntologyI
    */
   protected synchronized void findParents(Term childTerm)
   {
-    List<Term> result = new ArrayList<Term>();
+    List<Term> result = new ArrayList<>();
     for (Triple triple : ontology.getTriples(childTerm, null, isA))
     {
       Term parent = triple.getObject();