X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2Fvamsas%2FDbref.java;h=d4aafe82b1b1d3593924de1867a6263baae26056;hb=ad20cd92225f2ee8c251d39b00b90555d382a616;hp=c27bc9a609207c26862752f67eeb832184fbb384;hpb=12e7f97678ce85b0238f987d5f4eaf18512a0b94;p=jalview.git diff --git a/src/jalview/io/vamsas/Dbref.java b/src/jalview/io/vamsas/Dbref.java index c27bc9a..d4aafe8 100644 --- a/src/jalview/io/vamsas/Dbref.java +++ b/src/jalview/io/vamsas/Dbref.java @@ -1,20 +1,19 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4) - * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8) + * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle * - * This program 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 2 - * of the License, or (at your option) any later version. + * This file is part of Jalview. * - * This program 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. + * 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 this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + * You should have received a copy of the GNU General Public License along with Jalview. If not, see . */ package jalview.io.vamsas; @@ -87,40 +86,61 @@ public class Dbref extends Rangetype updateMapTo(mp); } } - else - { - jalview.bin.Cache.log.debug("Ignoring mapless DbRef.Map " - + jvobj.getSrcAccString()); - } - + else + { + jalview.bin.Cache.log.debug("Ignoring mapless DbRef.Map " + + jvobj.getSrcAccString()); + } + } + /** - * ugly hack to try to get the embedded sequences within a database reference to be stored in the document's dataset. + * ugly hack to try to get the embedded sequences within a database reference + * to be stored in the document's dataset. + * * @param mp */ private void updateMapTo(jalview.datamodel.Mapping mp) { log.info("Performing updateMapTo remove this message when we know what we're doing."); - // TODO determine how sequences associated with database mappings are stored in the document - if (mp!=null && mp.getTo() != null) + // TODO determine how sequences associated with database mappings are stored + // in the document + if (mp != null && mp.getTo() != null) { if (mp.getTo().getDatasetSequence() == null) { - // sync the dataset sequence, if it hasn't been done already. - Datasetsequence dssync = new Datasetsequence( - datastore, mp.getTo(), - (mp.getMappedWidth() == mp.getWidth()) ? sequence - .getDictionary() - : ((mp.getMappedWidth() == 3) ? uk.ac.vamsas.objects.utils.SymbolDictionary.STANDARD_AA - : uk.ac.vamsas.objects.utils.SymbolDictionary.STANDARD_NA), - ds); - // add a mapping between new dataset sequence and sequence associated with the database reference - - } else { - log.debug("Ignoring non-dataset sequence mapping."); + // TODO: fix this hinky sh!t + DatastoreItem dssync = dsReg.getDatastoreItemFor(mp.getTo()); + if (dssync == null) + { + // sync the dataset sequence, if it hasn't been done already. + // TODO: ensure real dataset sequence corresponding to getTo is + // recovered + dssync = new Datasetsequence( + datastore, + mp.getTo(), + (mp.getMappedWidth() == mp.getWidth()) ? sequence + .getDictionary() + : ((mp.getMappedWidth() == 3) ? uk.ac.vamsas.objects.utils.SymbolDictionary.STANDARD_NA + : uk.ac.vamsas.objects.utils.SymbolDictionary.STANDARD_AA), + ds); + } + // + // TODO: NOW add a mapping between new dataset sequence and sequence + // associated with the database reference + + // dna mappings only... + // new jalview.io.vamsas.Sequencemapping(datastore, mp, sequence, ds); + } + + } + else + { + log.debug("Ignoring non-dataset sequence mapping."); } } + public void updateFromDoc() { DbRef vobj = (DbRef) this.vobj; @@ -140,13 +160,13 @@ public class Dbref extends Rangetype } jalview.datamodel.Mapping mp = new jalview.datamodel.Mapping( parsemapType(vobj.getMap(0))); - if (jvobj.getMap()==null || !mp.equals(jvobj.getMap())) + if (jvobj.getMap() == null || !mp.equals(jvobj.getMap())) { jvobj.setMap(mp); } } } - + public void conflict() { DbRef vobj = (DbRef) this.vobj; @@ -193,6 +213,7 @@ public class Dbref extends Rangetype dbref.setAccessionId(jvobj.getAccessionId()); dbref.setSource(jvobj.getSource()); dbref.setVersion(jvobj.getVersion()); + sequence.addDbRef(dbref); if (jvobj.getMap() != null) { jalview.datamodel.Mapping mp = jvobj.getMap(); @@ -201,6 +222,7 @@ public class Dbref extends Rangetype Map vMap = new Map(); initMapType(vMap, mp.getMap(), true); dbref.addMap(vMap); + updateMapTo(mp); } else { @@ -208,7 +230,6 @@ public class Dbref extends Rangetype + jvobj.getSrcAccString()); } } - sequence.addDbRef(dbref); } }