licencing and format applied (eclipse)
[jalview.git] / src / jalview / io / vamsas / Sequencemapping.java
index c37dfd3..de4a01e 100644 (file)
@@ -36,20 +36,24 @@ import uk.ac.vamsas.objects.core.SequenceType;
 
 public class Sequencemapping extends Rangetype
 {
-  public Sequencemapping(VamsasAppDatastore datastore, SequenceMapping sequenceMapping)
+  public Sequencemapping(VamsasAppDatastore datastore,
+          SequenceMapping sequenceMapping)
   {
     super(datastore);
     Object mjvmapping = getvObj2jv(sequenceMapping);
-    if (mjvmapping==null)
+    if (mjvmapping == null)
     {
       add(sequenceMapping);
-    } else {
+    }
+    else
+    {
       if (sequenceMapping.isUpdated())
       {
         update((jalview.util.MapList) mjvmapping, sequenceMapping);
       }
     }
   }
+
   /**
    * create or update a vamsas sequence mapping corresponding to a jalview
    * Mapping between two dataset sequences
@@ -59,96 +63,121 @@ public class Sequencemapping extends Rangetype
    * @param from
    * @param ds
    */
-  public Sequencemapping(VamsasAppDatastore datastore, jalview.datamodel.Mapping mjvmapping, uk.ac.vamsas.objects.core.SequenceType from, uk.ac.vamsas.objects.core.DataSet ds)
+  public Sequencemapping(VamsasAppDatastore datastore,
+          jalview.datamodel.Mapping mjvmapping,
+          uk.ac.vamsas.objects.core.SequenceType from,
+          uk.ac.vamsas.objects.core.DataSet ds)
   {
     super(datastore);
     SequenceMapping sequenceMapping = (SequenceMapping) getjv2vObj(mjvmapping);
-    if (sequenceMapping==null)
+    if (sequenceMapping == null)
     {
       add(mjvmapping, from, ds);
-    } else {
-      if (from!=null && sequenceMapping.getLoc()!=from)
+    }
+    else
+    {
+      if (from != null && sequenceMapping.getLoc() != from)
       {
-        jalview.bin.Cache.log.warn("Probable IMPLEMENTATION ERROR: "+from+" doesn't match the local mapping sequence.");
+        jalview.bin.Cache.log.warn("Probable IMPLEMENTATION ERROR: " + from
+                + " doesn't match the local mapping sequence.");
       }
-      if (ds!=null && sequenceMapping.is__stored_in_document() && sequenceMapping.getV_parent()!=ds)
+      if (ds != null && sequenceMapping.is__stored_in_document()
+              && sequenceMapping.getV_parent() != ds)
       {
-        jalview.bin.Cache.log.warn("Probable IMPLEMENTATION ERROR: "+ds+" doesn't match the parent of the bound sequence mapping object.");
+        jalview.bin.Cache.log
+                .warn("Probable IMPLEMENTATION ERROR: "
+                        + ds
+                        + " doesn't match the parent of the bound sequence mapping object.");
       }
       if (sequenceMapping.isUpdated())
-      { 
+      {
         conflict(mjvmapping, sequenceMapping);
-      } else {
+      }
+      else
+      {
         update(mjvmapping, sequenceMapping);
       }
     }
   }
+
   private void conflict(Mapping mjvmapping, SequenceMapping sequenceMapping)
   {
-    System.err.println("Conflict in update of sequenceMapping "+sequenceMapping.getVorbaId());
+    System.err.println("Conflict in update of sequenceMapping "
+            + sequenceMapping.getVorbaId());
   }
-  private void add(Mapping mjvmapping, uk.ac.vamsas.objects.core.SequenceType from, DataSet ds)
+
+  private void add(Mapping mjvmapping,
+          uk.ac.vamsas.objects.core.SequenceType from, DataSet ds)
   {
     SequenceI jvto = mjvmapping.getTo();
-    while (jvto.getDatasetSequence()!=null)
+    while (jvto.getDatasetSequence() != null)
     {
       jvto = jvto.getDatasetSequence();
     }
     SequenceType to = (SequenceType) getjv2vObj(jvto);
-    if (to==null)
+    if (to == null)
     {
-      jalview.bin.Cache.log.warn("NONFATAL - do a second update: Ignoring Forward Reference to seuqence not yet bound to vamsas seuqence object");
+      jalview.bin.Cache.log
+              .warn("NONFATAL - do a second update: Ignoring Forward Reference to seuqence not yet bound to vamsas seuqence object");
       return;
-    } 
+    }
     SequenceMapping sequenceMapping = new SequenceMapping();
     sequenceMapping.setLoc(from);
     sequenceMapping.setMap(to);
-    boolean dnaToProt=false,sense=false;
+    boolean dnaToProt = false, sense = false;
     // ensure that we create a mapping with the correct sense
-    if (((Sequence) sequenceMapping.getLoc())
-            .getDictionary()
-            .equals(uk.ac.vamsas.objects.utils.SymbolDictionary.STANDARD_NA))
+    if (((Sequence) sequenceMapping.getLoc()).getDictionary().equals(
+            uk.ac.vamsas.objects.utils.SymbolDictionary.STANDARD_NA))
     {
-      if (((Sequence) sequenceMapping.getMap())
-              .getDictionary()
-              .equals(uk.ac.vamsas.objects.utils.SymbolDictionary.STANDARD_AA))
+      if (((Sequence) sequenceMapping.getMap()).getDictionary().equals(
+              uk.ac.vamsas.objects.utils.SymbolDictionary.STANDARD_AA))
       {
-        dnaToProt=true;
-        sense=true;
-      } 
-    } else {
-      if (((Sequence) sequenceMapping.getMap())
-              .getDictionary()
-              .equals(uk.ac.vamsas.objects.utils.SymbolDictionary.STANDARD_NA))
+        dnaToProt = true;
+        sense = true;
+      }
+    }
+    else
+    {
+      if (((Sequence) sequenceMapping.getMap()).getDictionary().equals(
+              uk.ac.vamsas.objects.utils.SymbolDictionary.STANDARD_NA))
       {
-        dnaToProt=true;
-        sense=false;
-      } 
+        dnaToProt = true;
+        sense = false;
+      }
     }
 
     if (!dnaToProt)
     {
-      jalview.bin.Cache.log.warn("Ignoring Mapping - don't support protein to protein mapping in vamsas document yet.");
+      jalview.bin.Cache.log
+              .warn("Ignoring Mapping - don't support protein to protein mapping in vamsas document yet.");
       return;
     }
-    if (ds==null)
+    if (ds == null)
     {
       // locate dataset for storage of SequenceMapping
       if (sense)
       {
-        ds = (DataSet) ((uk.ac.vamsas.client.Vobject) sequenceMapping.getLoc()).getV_parent();
-      } else {
-        ds = (DataSet) ((uk.ac.vamsas.client.Vobject) sequenceMapping.getMap()).getV_parent();
-      } 
+        ds = (DataSet) ((uk.ac.vamsas.client.Vobject) sequenceMapping
+                .getLoc()).getV_parent();
+      }
+      else
+      {
+        ds = (DataSet) ((uk.ac.vamsas.client.Vobject) sequenceMapping
+                .getMap()).getV_parent();
+      }
     }
     if (sense)
     {
       this.initMapType(sequenceMapping, mjvmapping.getMap(), true);
-    } else {
-      this.initMapType(sequenceMapping, mjvmapping.getMap().getInverse(), true);
+    }
+    else
+    {
+      this.initMapType(sequenceMapping, mjvmapping.getMap().getInverse(),
+              true);
     }
     ds.addSequenceMapping(sequenceMapping);
-    sequenceMapping.setProvenance(this.dummyProvenance("user defined coding region translation")); // TODO:
+    sequenceMapping.setProvenance(this
+            .dummyProvenance("user defined coding region translation")); // TODO:
     // correctly
     // construct
     // provenance
@@ -159,16 +188,24 @@ public class Sequencemapping extends Rangetype
     // mapping
     bindjvvobj(mjvmapping, sequenceMapping);
 
-    jalview.bin.Cache.log.debug("Successfully created mapping "+sequenceMapping.getVorbaId());
+    jalview.bin.Cache.log.debug("Successfully created mapping "
+            + sequenceMapping.getVorbaId());
   }
-  private void update(jalview.util.MapList mjvmapping, SequenceMapping sequenceMapping)
+
+  private void update(jalview.util.MapList mjvmapping,
+          SequenceMapping sequenceMapping)
   {
-    jalview.bin.Cache.log.error("Not implemented: Jalview Update Alcodon Mapping:TODO!"); 
+    jalview.bin.Cache.log
+            .error("Not implemented: Jalview Update Alcodon Mapping:TODO!");
   }
-  private void update(jalview.datamodel.Mapping mjvmapping, SequenceMapping sequenceMapping)
+
+  private void update(jalview.datamodel.Mapping mjvmapping,
+          SequenceMapping sequenceMapping)
   {
-    jalview.bin.Cache.log.error("Not implemented: Jalview Update Sequence DBRef Mapping"); 
+    jalview.bin.Cache.log
+            .error("Not implemented: Jalview Update Sequence DBRef Mapping");
   }
+
   /**
    * limitations: Currently, jalview only deals with mappings between dataset
    * sequences, and even then, only between those that map from DNA to Protein.
@@ -178,22 +215,28 @@ public class Sequencemapping extends Rangetype
   private void add(SequenceMapping sequenceMapping)
   {
     Object mobj;
-    SequenceI from=null,to=null;
-    boolean dnaToProt=false,sense=false;
-    Sequence sdloc=null, sdmap=null;
+    SequenceI from = null, to = null;
+    boolean dnaToProt = false, sense = false;
+    Sequence sdloc = null, sdmap = null;
     if (sequenceMapping.getLoc() instanceof AlignmentSequence)
     {
-      sdloc = (Sequence) ((AlignmentSequence) sequenceMapping.getLoc()).getRefid();
-    } else {
+      sdloc = (Sequence) ((AlignmentSequence) sequenceMapping.getLoc())
+              .getRefid();
+    }
+    else
+    {
       sdloc = ((Sequence) sequenceMapping.getLoc());
     }
     if (sequenceMapping.getMap() instanceof AlignmentSequence)
     {
-      sdmap = (Sequence) ((AlignmentSequence) sequenceMapping.getMap()).getRefid();
-    } else {
+      sdmap = (Sequence) ((AlignmentSequence) sequenceMapping.getMap())
+              .getRefid();
+    }
+    else
+    {
       sdmap = ((Sequence) sequenceMapping.getMap());
     }
-    if (sdloc==null || sdmap == null)
+    if (sdloc == null || sdmap == null)
     {
       jalview.bin.Cache.log.info("Ignoring non sequence-sequence mapping");
       return;
@@ -211,135 +254,163 @@ public class Sequencemapping extends Rangetype
     if (from == null || to == null)
     {
 
-      jalview.bin.Cache.log.error("Probable Vamsas implementation error : unbound dataset sequences involved in a mapping are being parsed!");
+      jalview.bin.Cache.log
+              .error("Probable Vamsas implementation error : unbound dataset sequences involved in a mapping are being parsed!");
       return;
-    } 
+    }
 
-    if (sdloc.getDictionary()
-            .equals(uk.ac.vamsas.objects.utils.SymbolDictionary.STANDARD_NA))
+    if (sdloc.getDictionary().equals(
+            uk.ac.vamsas.objects.utils.SymbolDictionary.STANDARD_NA))
     {
-      if (sdmap.getDictionary()
-              .equals(uk.ac.vamsas.objects.utils.SymbolDictionary.STANDARD_AA))
+      if (sdmap.getDictionary().equals(
+              uk.ac.vamsas.objects.utils.SymbolDictionary.STANDARD_AA))
       {
-        dnaToProt=true;
-        sense=true;
-      } 
+        dnaToProt = true;
+        sense = true;
+      }
       // else {
 
       // }
-    } else {
-      if (sdmap.getDictionary()
-              .equals(uk.ac.vamsas.objects.utils.SymbolDictionary.STANDARD_NA))
+    }
+    else
+    {
+      if (sdmap.getDictionary().equals(
+              uk.ac.vamsas.objects.utils.SymbolDictionary.STANDARD_NA))
       {
-        dnaToProt=true;
-        sense=false;
-      } 
+        dnaToProt = true;
+        sense = false;
+      }
     }
     // create mapping storage object and make each dataset alignment reference
     // it.
-    jalview.datamodel.AlignmentI dsLoc = (jalview.datamodel.AlignmentI) getvObj2jv(sdloc.getV_parent());
-    jalview.datamodel.AlignmentI dsMap = (jalview.datamodel.AlignmentI) getvObj2jv(sdmap.getV_parent());
+    jalview.datamodel.AlignmentI dsLoc = (jalview.datamodel.AlignmentI) getvObj2jv(sdloc
+            .getV_parent());
+    jalview.datamodel.AlignmentI dsMap = (jalview.datamodel.AlignmentI) getvObj2jv(sdmap
+            .getV_parent());
     AlignedCodonFrame afc = new AlignedCodonFrame(0);
 
-    if (dsLoc!=null && dsLoc!=dsMap)
+    if (dsLoc != null && dsLoc != dsMap)
     {
       dsLoc.addCodonFrame(afc);
     }
-    if (dsMap!=null)
+    if (dsMap != null)
     {
       dsMap.addCodonFrame(afc);
     }
     // create and add the new mapping to (each) dataset's codonFrame
 
-    jalview.util.MapList mapping = null; 
+    jalview.util.MapList mapping = null;
     if (!sense)
     {
       mapping = this.parsemapType(sequenceMapping, 1, 3); // invert sense
-      mapping = new jalview.util.MapList(mapping.getToRanges(), mapping.getFromRanges(), mapping.getToRatio(), mapping.getFromRatio());
+      mapping = new jalview.util.MapList(mapping.getToRanges(), mapping
+              .getFromRanges(), mapping.getToRatio(), mapping
+              .getFromRatio());
       afc.addMap(to, from, mapping);
-    } else {
+    }
+    else
+    {
       mapping = this.parsemapType(sequenceMapping, 3, 1); // correct sense
       afc.addMap(from, to, mapping);
     }
     bindjvvobj(mapping, sequenceMapping);
-    jalview.structure.StructureSelectionManager.getStructureSelectionManager().addMappings(new AlignedCodonFrame[] { afc });
+    jalview.structure.StructureSelectionManager
+            .getStructureSelectionManager().addMappings(
+                    new AlignedCodonFrame[]
+                    { afc });
     // Try to link up any conjugate database references in the two sequences
-    // matchConjugateDBRefs(from, to,  mapping);
+    // matchConjugateDBRefs(from, to, mapping);
     // Try to propagate any dbrefs across this mapping.
 
   }
+
   /**
-   * Complete any 'to' references in jalview.datamodel.Mapping objects associated with conjugate DBRefEntry under given mapping  
-   * @param from sequence corresponding to from reference for sequence mapping
-   * @param to sequence correspondeing to to reference for sequence mapping
-   * @param smap maplist parsed in same sense as from and to
+   * Complete any 'to' references in jalview.datamodel.Mapping objects
+   * associated with conjugate DBRefEntry under given mapping
+   * 
+   * @param from
+   *                sequence corresponding to from reference for sequence
+   *                mapping
+   * @param to
+   *                sequence correspondeing to to reference for sequence mapping
+   * @param smap
+   *                maplist parsed in same sense as from and to
    */
   private void matchConjugateDBRefs(SequenceI from, SequenceI to,
           jalview.util.MapList smap)
   {
-    if (from.getDBRef()==null && to.getDBRef()==null)
+    if (from.getDBRef() == null && to.getDBRef() == null)
     {
       if (jalview.bin.Cache.log.isDebugEnabled())
       {
-        jalview.bin.Cache.log.debug("Not matching conjugate refs for "+from.getName()+" and "+to.getName());
+        jalview.bin.Cache.log.debug("Not matching conjugate refs for "
+                + from.getName() + " and " + to.getName());
       }
-      return; 
+      return;
     }
     if (jalview.bin.Cache.log.isDebugEnabled())
     {
-      jalview.bin.Cache.log.debug("Matching conjugate refs for "+from.getName()+" and "+to.getName());
+      jalview.bin.Cache.log.debug("Matching conjugate refs for "
+              + from.getName() + " and " + to.getName());
     }
     jalview.datamodel.DBRefEntry[] fdb = from.getDBRef();
-    jalview.datamodel.DBRefEntry[] tdb = new jalview.datamodel.DBRefEntry[to.getDBRef().length];
+    jalview.datamodel.DBRefEntry[] tdb = new jalview.datamodel.DBRefEntry[to
+            .getDBRef().length];
     int tdblen = to.getDBRef().length;
     System.arraycopy(to.getDBRef(), 0, tdb, 0, tdblen);
     Vector matched = new Vector();
     jalview.util.MapList smapI = smap.getInverse();
-    for (int f=0;f<fdb.length; f++)
+    for (int f = 0; f < fdb.length; f++)
     {
       jalview.datamodel.DBRefEntry fe = fdb[f];
       jalview.datamodel.Mapping fmp = fe.getMap();
-      boolean fmpnnl = fmp!=null;
+      boolean fmpnnl = fmp != null;
       // if (fmpnnl && fmp.getTo()!=null)
-      //{
-      //  jalview.bin.Cache.log.debug("Not overwriting existing To reference in "+fe);
-      //  continue;
-      //}
+      // {
+      // jalview.bin.Cache.log.debug("Not overwriting existing To reference in
+      // "+fe);
+      // continue;
+      // }
       // smap from maps from fe.local to fe.map
-      boolean smapfromlocal2fe = (fmpnnl) ? smap.equals(fmp.getMap()) : false;
+      boolean smapfromlocal2fe = (fmpnnl) ? smap.equals(fmp.getMap())
+              : false;
       // smap from maps from fe.map to fe.local.
-      boolean smapfromfemap2local = (fmpnnl) ? smapI.equals(fmp.getMap()) : false;
-      for (int t=0; t<tdblen; t++)
+      boolean smapfromfemap2local = (fmpnnl) ? smapI.equals(fmp.getMap())
+              : false;
+      for (int t = 0; t < tdblen; t++)
       {
         jalview.datamodel.DBRefEntry te = tdb[t];
-        if (te!=null)
+        if (te != null)
         {
           if (fe.getSource().equals(te.getSource())
-              && fe.getAccessionId().equals(te.getAccessionId()))
+                  && fe.getAccessionId().equals(te.getAccessionId()))
           {
             jalview.datamodel.Mapping tmp = te.getMap();
-            boolean tmpnnl = tmp!=null;
-            if (tmpnnl && tmp.getTo()!=null)
+            boolean tmpnnl = tmp != null;
+            if (tmpnnl && tmp.getTo() != null)
             {
-              
+
             }
             // smap to maps from te.local to te.map
-            boolean smaptolocal2tm = (tmpnnl) ? smap.equals(tmp.getMap()) : false;
+            boolean smaptolocal2tm = (tmpnnl) ? smap.equals(tmp.getMap())
+                    : false;
             // smap to maps from te.map to te.local
-            boolean smaptotemap2local = (tmpnnl) ? smapI.equals(fmp.getMap()) : false;
+            boolean smaptotemap2local = (tmpnnl) ? smapI.equals(fmp
+                    .getMap()) : false;
             if (smapfromlocal2fe && smaptotemap2local)
             {
               // smap implies mapping from to to from
               fmp.setTo(to);
               tmp.setTo(from);
-            } else 
-              if (smapfromfemap2local && smaptolocal2tm) {
-                fmp.setTo(to);
-              }
             }
-            
+            else if (smapfromfemap2local && smaptolocal2tm)
+            {
+              fmp.setTo(to);
+            }
+          }
+
         }
       }
     }
-    }
+  }
 }