X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2Fvamsas%2FDatasetsequence.java;fp=src%2Fjalview%2Fio%2Fvamsas%2FDatasetsequence.java;h=77af704f0d17f4f53dd27e0c0a47c36c555aeaa2;hb=d423f22792e47dbc800ae220a58677f988971d06;hp=14120079d23ff7f4fd211ee867c46fe0fe836988;hpb=797d4400e51c5786c080d7d746d5968589b5dc78;p=jalview.git diff --git a/src/jalview/io/vamsas/Datasetsequence.java b/src/jalview/io/vamsas/Datasetsequence.java index 1412007..77af704 100644 --- a/src/jalview/io/vamsas/Datasetsequence.java +++ b/src/jalview/io/vamsas/Datasetsequence.java @@ -1,20 +1,19 @@ /* - * 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 2.5) + * Copyright (C) 2010 J Procter, AM Waterhouse, 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. * - * 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 + * 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 . */ package jalview.io.vamsas; @@ -27,16 +26,19 @@ import uk.ac.vamsas.objects.core.DbRef; import uk.ac.vamsas.objects.core.Sequence; /** - * synchronize a vamsas dataset sequence with a jalview dataset sequence. - * This class deals with all sequence features and database references associated with - * the jalview sequence. + * synchronize a vamsas dataset sequence with a jalview dataset sequence. This + * class deals with all sequence features and database references associated + * with the jalview sequence. + * * @author JimP - * + * */ public class Datasetsequence extends DatastoreItem { String dict; + private DataSet dataset; + // private AlignmentI jvdset; public Datasetsequence(VamsasAppDatastore vamsasAppDatastore, @@ -59,23 +61,26 @@ public class Datasetsequence extends DatastoreItem public void addFromDocument() { Sequence vseq = (Sequence) vobj; - SequenceI dsseq = new jalview.datamodel.Sequence(vseq.getName(), - vseq.getSequence(), - (int) vseq.getStart(), (int) vseq.getEnd()); + SequenceI dsseq = new jalview.datamodel.Sequence(vseq.getName(), vseq + .getSequence(), (int) vseq.getStart(), (int) vseq.getEnd()); dsseq.setDescription(vseq.getDescription()); bindjvvobj(dsseq, vseq); dsseq.setVamsasId(vseq.getVorbaId().getId()); jvobj = dsseq; - modified=true; + modified = true; } + public void updateFromDoc() { Sequence sq = (Sequence) vobj; SequenceI sequence = (SequenceI) jvobj; if (!sequence.getSequenceAsString().equals(sq.getSequence())) { - log.warn("Potential Client Error ! - mismatch of dataset sequence: and jalview internal dataset sequence."); - } else { + log + .warn("Potential Client Error ! - mismatch of dataset sequence: and jalview internal dataset sequence."); + } + else + { // verify and update principal attributes. if (sequence.getDescription() != null && (sequence.getDescription() == null || !sequence @@ -85,16 +90,15 @@ public class Datasetsequence extends DatastoreItem modified = true; } if (sequence.getSequence() == null - || !sequence.getSequenceAsString().equals( - sq.getSequence())) + || !sequence.getSequenceAsString().equals(sq.getSequence())) { if (sequence.getStart() != sq.getStart() || sequence.getEnd() != sq.getEnd()) { // update modified sequence. sequence.setSequence(sq.getSequence()); - sequence.setStart((int)sq.getStart()); - sequence.setEnd((int)sq.getEnd()); + sequence.setStart((int) sq.getStart()); + sequence.setEnd((int) sq.getEnd()); modified = true; } } @@ -105,32 +109,26 @@ public class Datasetsequence extends DatastoreItem } modified |= updateJvDbRefs(); // updateJvFeatures(); - } + } } -/* - private void updateJvFeatures() - { - Sequence vsq = (Sequence) vobj; - - // add or update any new features/references on dataset sequence - if (vsq.getgetSequenceFeatures() != null) - { - int sfSize = sq.getSequenceFeatures().length; - - for (int sf = 0; sf < sfSize; sf++) - { - new jalview.io.vamsas.Sequencefeature(datastore, (jalview.datamodel.SequenceFeature) sq - .getSequenceFeatures()[sf], dataset, (Sequence) vobj); - } - } - } -*/ + /* + * private void updateJvFeatures() { Sequence vsq = (Sequence) vobj; + * + * // add or update any new features/references on dataset sequence if + * (vsq.getgetSequenceFeatures() != null) { int sfSize = + * sq.getSequenceFeatures().length; + * + * for (int sf = 0; sf < sfSize; sf++) { new + * jalview.io.vamsas.Sequencefeature(datastore, + * (jalview.datamodel.SequenceFeature) sq .getSequenceFeatures()[sf], dataset, + * (Sequence) vobj); } } } + */ private boolean updateSqFeatures() { - boolean modified=false; + boolean modified = false; SequenceI sq = (SequenceI) jvobj; - + // add or update any new features/references on dataset sequence if (sq.getSequenceFeatures() != null) { @@ -138,8 +136,10 @@ public class Datasetsequence extends DatastoreItem for (int sf = 0; sf < sfSize; sf++) { - modified|=new jalview.io.vamsas.Sequencefeature(datastore, (jalview.datamodel.SequenceFeature) sq - .getSequenceFeatures()[sf], dataset, (Sequence) vobj).docWasUpdated(); + modified |= new jalview.io.vamsas.Sequencefeature(datastore, + (jalview.datamodel.SequenceFeature) sq + .getSequenceFeatures()[sf], dataset, + (Sequence) vobj).docWasUpdated(); } } return modified; @@ -160,49 +160,56 @@ public class Datasetsequence extends DatastoreItem dataset.addSequence(sequence); vobj = sequence; updateSqFeatures(); - updateDbRefs();//sq,(Sequence) vobj, dataset); + updateDbRefs();// sq,(Sequence) vobj, dataset); } + /** * sync database references from jv to document + * * @return true if document was modified */ - private boolean updateDbRefs() { - boolean modifiedthedoc=false; + private boolean updateDbRefs() + { + boolean modifiedthedoc = false; SequenceI sq = (SequenceI) jvobj; - + if (sq.getDatasetSequence() == null && sq.getDBRef() != null) { // only sync database references for dataset sequences DBRefEntry[] entries = sq.getDBRef(); - //jalview.datamodel.DBRefEntry dbentry; + // jalview.datamodel.DBRefEntry dbentry; for (int db = 0; db < entries.length; db++) { - modifiedthedoc|= new jalview.io.vamsas.Dbref(datastore, - //dbentry = - entries[db], sq, (Sequence) vobj, dataset).docWasUpdated(); - + modifiedthedoc |= new jalview.io.vamsas.Dbref(datastore, + // dbentry = + entries[db], sq, (Sequence) vobj, dataset).docWasUpdated(); + } } return modifiedthedoc; } + /** * sync database references from document to jv sequence + * * @return true if local sequence refs were modified */ - private boolean updateJvDbRefs() { - boolean modifiedtheseq=false; + private boolean updateJvDbRefs() + { + boolean modifiedtheseq = false; SequenceI sq = (SequenceI) jvobj; Sequence vsq = (Sequence) vobj; - if (vsq.getDbRefCount()>0) { + if (vsq.getDbRefCount() > 0) + { // only sync database references for dataset sequences DbRef[] entries = vsq.getDbRef(); - //DbRef dbentry; + // DbRef dbentry; for (int db = 0; db < entries.length; db++) { - modifiedtheseq|= new jalview.io.vamsas.Dbref(datastore, - //dbentry = - entries[db], vsq, sq).jvWasUpdated(); + modifiedtheseq |= new jalview.io.vamsas.Dbref(datastore, + // dbentry = + entries[db], vsq, sq).jvWasUpdated(); } } return modifiedtheseq; @@ -210,11 +217,14 @@ public class Datasetsequence extends DatastoreItem public void conflict() { - log.warn("Conflict in dataset sequence update to document. Overwriting document"); + log + .warn("Conflict in dataset sequence update to document. Overwriting document"); // TODO: could try to import from document data to jalview first. and then updateToDoc(); } + boolean modified = false; + public void updateToDoc() { SequenceI sq = (SequenceI) jvobj; @@ -228,8 +238,7 @@ public class Datasetsequence extends DatastoreItem modified = true; } if (sequence.getSequence() == null - || !sequence.getSequence().equals( - sq.getSequenceAsString())) + || !sequence.getSequence().equals(sq.getSequenceAsString())) { if (sequence.getStart() != sq.getStart() || sequence.getEnd() != sq.getEnd()) @@ -257,6 +266,7 @@ public class Datasetsequence extends DatastoreItem /** * (probably could just do vobj.isModified(), but..) + * * @return true if document's dataset sequence was modified */ public boolean getModified()