X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2Fvamsas%2FDbref.java;h=0c8ff0974dc39ce76b9bc410f839b6981bb2089c;hb=a1984b1c8c273ed33c7ce9283039f4027dcae2de;hp=11c62b53a2d078c395e5304f74eea3ff102b22fe;hpb=2de8acfae59aced665e4c37ad0f7dcc2ed68818e;p=jalview.git diff --git a/src/jalview/io/vamsas/Dbref.java b/src/jalview/io/vamsas/Dbref.java index 11c62b5..0c8ff09 100644 --- a/src/jalview/io/vamsas/Dbref.java +++ b/src/jalview/io/vamsas/Dbref.java @@ -1,30 +1,34 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Development Version 2.4.1) - * Copyright (C) 2009 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors * - * 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 + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. */ package jalview.io.vamsas; +import jalview.bin.Cache; import jalview.datamodel.DBRefEntry; import jalview.datamodel.SequenceI; +import jalview.io.VamsasAppDatastore; + import uk.ac.vamsas.objects.core.DataSet; import uk.ac.vamsas.objects.core.DbRef; import uk.ac.vamsas.objects.core.Map; import uk.ac.vamsas.objects.core.Sequence; -import jalview.io.VamsasAppDatastore; public class Dbref extends Rangetype { @@ -87,40 +91,61 @@ public class Dbref extends Rangetype updateMapTo(mp); } } - else - { - jalview.bin.Cache.log.debug("Ignoring mapless DbRef.Map " - + jvobj.getSrcAccString()); - } - + else + { + Cache.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) + 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) { 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; @@ -134,26 +159,24 @@ public class Dbref extends Rangetype // TODO: Jalview ignores all the other maps if (vobj.getMapCount() > 1) { - jalview.bin.Cache.log - .debug("Ignoring additional mappings on DbRef: " + Cache.debug("Ignoring additional mappings on DbRef: " + jvobj.getSource() + ":" + jvobj.getAccessionId()); } 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; DBRefEntry jvobj = (DBRefEntry) this.jvobj; - jalview.bin.Cache.log.debug("Conflict in dbentry update for " - + vobj.getAccessionId() + vobj.getSource() + " " - + vobj.getVorbaId()); + Cache.debug("Conflict in dbentry update for " + vobj.getAccessionId() + + vobj.getSource() + " " + vobj.getVorbaId()); // TODO Auto-generated method stub } @@ -163,16 +186,15 @@ public class Dbref extends Rangetype DbRef vobj = (DbRef) this.vobj; DBRefEntry jvobj = (DBRefEntry) this.jvobj; // add new dbref - sq.addDBRef(jvobj = new jalview.datamodel.DBRefEntry(vobj.getSource() - .toString(), vobj.getVersion().toString(), vobj - .getAccessionId().toString())); + sq.addDBRef(jvobj = new jalview.datamodel.DBRefEntry( + vobj.getSource().toString(), vobj.getVersion().toString(), + vobj.getAccessionId().toString())); if (vobj.getMapCount() > 0) { // TODO: Jalview ignores all the other maps if (vobj.getMapCount() > 1) { - jalview.bin.Cache.log - .debug("Ignoring additional mappings on DbRef: " + Cache.debug("Ignoring additional mappings on DbRef: " + jvobj.getSource() + ":" + jvobj.getAccessionId()); } jalview.datamodel.Mapping mp = new jalview.datamodel.Mapping( @@ -193,6 +215,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,14 +224,14 @@ public class Dbref extends Rangetype Map vMap = new Map(); initMapType(vMap, mp.getMap(), true); dbref.addMap(vMap); + updateMapTo(mp); } else { - jalview.bin.Cache.log.debug("Ignoring mapless DbRef.Map " - + jvobj.getSrcAccString()); + Cache.debug( + "Ignoring mapless DbRef.Map " + jvobj.getSrcAccString()); } } - sequence.addDbRef(dbref); } }