JAL-3438 spotless for 2.11.2.0
[jalview.git] / src / jalview / io / StructureFile.java
index 5ff1a02..6b623a1 100644 (file)
@@ -38,7 +38,7 @@ import java.lang.reflect.Constructor;
 import java.util.List;
 import java.util.Vector;
 
-import MCview.PDBChain;
+import mc_view.PDBChain;
 
 public abstract class StructureFile extends AlignFile
 {
@@ -68,7 +68,7 @@ public abstract class StructureFile extends AlignFile
 
   private boolean pdbIdAvailable;
 
-  public StructureFile(String inFile, DataSourceType sourceType)
+  public StructureFile(Object inFile, DataSourceType sourceType)
           throws IOException
   {
     super(inFile, sourceType);
@@ -98,7 +98,7 @@ public abstract class StructureFile extends AlignFile
 
   }
 
-  public StructureFile(boolean parseImmediately, String dataObject,
+  public StructureFile(boolean parseImmediately, Object dataObject,
           DataSourceType sourceType) throws IOException
   {
     super(parseImmediately, dataObject, sourceType);
@@ -119,6 +119,7 @@ public abstract class StructureFile extends AlignFile
     pdbSequence.setName(getId() + "|" + pdbSequence.getName());
     PDBEntry entry = new PDBEntry();
     entry.setId(getId());
+    entry.setFakedPDBId(!isPPDBIdAvailable());
     entry.setType(getStructureFileType());
     if (chain.id != null)
     {
@@ -191,11 +192,13 @@ public abstract class StructureFile extends AlignFile
       {
         // TODO: use the PDB ID of the structure if one is available, to save
         // bandwidth and avoid uploading the whole structure to the service
-        Object annotate3d = cl.getConstructor(new Class[] {}).newInstance(
-                new Object[] {});
-        AlignmentI al = ((AlignmentI) cl.getMethod("getRNAMLFor",
-                new Class[] { FileParse.class }).invoke(annotate3d,
-                new Object[] { new FileParse(getDataName(), dataSourceType) }));
+        Object annotate3d = cl.getConstructor(new Class[] {})
+                .newInstance(new Object[] {});
+        AlignmentI al = ((AlignmentI) cl
+                .getMethod("getRNAMLFor", new Class[]
+                { FileParse.class })
+                .invoke(annotate3d, new Object[]
+                { new FileParse(getDataName(), dataSourceType) }));
         for (SequenceI sq : al.getSequences())
         {
           if (sq.getDatasetSequence() != null)
@@ -222,8 +225,8 @@ public abstract class StructureFile extends AlignFile
   }
 
   @SuppressWarnings("unchecked")
-  protected void replaceAndUpdateChains(List<SequenceI> prot,
-          AlignmentI al, String pep, boolean b)
+  protected void replaceAndUpdateChains(List<SequenceI> prot, AlignmentI al,
+          String pep, boolean b)
   {
     List<List<? extends Object>> replaced = AlignSeq
             .replaceMatchingSeqsWith(seqs, annotations, prot, al, pep,
@@ -288,8 +291,8 @@ public abstract class StructureFile extends AlignFile
         processWithJmolParser(proteinSequences);
       } catch (Exception x)
       {
-        System.err
-                .println("Exceptions from Jmol when processing data in pdb file");
+        System.err.println(
+                "Exceptions from Jmol when processing data in pdb file");
         x.printStackTrace();
       }
     }
@@ -304,8 +307,11 @@ public abstract class StructureFile extends AlignFile
       Class cl = Class.forName("jalview.ext.jmol.JmolParser");
       if (cl != null)
       {
-        final Constructor constructor = cl.getConstructor(new Class[] {FileParse.class });
-        final Object[] args = new Object[] { new FileParse(getDataName(), dataSourceType) };
+        final Constructor constructor = cl
+                .getConstructor(new Class[]
+                { FileParse.class });
+        final Object[] args = new Object[] {
+            new FileParse(getDataName(), dataSourceType) };
 
         StructureImportSettings.setShowSeqFeatures(false);
         StructureImportSettings.setVisibleChainAnnotation(false);
@@ -314,8 +320,8 @@ public abstract class StructureFile extends AlignFile
         StructureImportSettings
                 .setExternalSecondaryStructure(externalSecondaryStructure);
         Object jmf = constructor.newInstance(args);
-        AlignmentI al = new Alignment((SequenceI[]) cl.getMethod(
-                "getSeqsAsArray", new Class[] {}).invoke(jmf));
+        AlignmentI al = new Alignment((SequenceI[]) cl
+                .getMethod("getSeqsAsArray", new Class[] {}).invoke(jmf));
         cl.getMethod("addAnnotations", new Class[] { AlignmentI.class })
                 .invoke(jmf, al);
         for (SequenceI sq : al.getSequences())
@@ -337,7 +343,14 @@ public abstract class StructureFile extends AlignFile
     StructureImportSettings.setShowSeqFeatures(true);
   }
 
-  public PDBChain findChain(String id) throws Exception
+  /**
+   * Answers the first PDBChain found matching the given id, or null if none is
+   * found
+   * 
+   * @param id
+   * @return
+   */
+  public PDBChain findChain(String id)
   {
     for (PDBChain chain : getChains())
     {
@@ -346,7 +359,7 @@ public abstract class StructureFile extends AlignFile
         return chain;
       }
     }
-    throw new Exception("PDB chain not Found!");
+    return null;
   }
 
   public void makeResidueList()
@@ -392,8 +405,10 @@ public abstract class StructureFile extends AlignFile
 
   public static boolean isRNA(SequenceI seq)
   {
-    for (char c : seq.getSequence())
+    int length = seq.getLength();
+    for (int i = 0; i < length; i++)
     {
+      char c = seq.getCharAt(i);
       if ((c != 'A') && (c != 'C') && (c != 'G') && (c != 'U'))
       {
         return false;
@@ -406,7 +421,8 @@ public abstract class StructureFile extends AlignFile
    * make a friendly ID string.
    * 
    * @param dataName
-   * @return truncated dataName to after last '/'
+   * @return truncated dataName to after last '/' and pruned .extension if
+   *         present
    */
   protected String safeName(String dataName)
   {
@@ -415,7 +431,8 @@ public abstract class StructureFile extends AlignFile
     {
       dataName = dataName.substring(p + 1);
     }
-    if(dataName.indexOf(".") > -1){
+    if (dataName.indexOf(".") > -1)
+    {
       dataName = dataName.substring(0, dataName.lastIndexOf("."));
     }
     return dataName;