/*\r
- * Jalview - A Sequence Alignment Editor and Viewer (Development Version 2.4.1)\r
- * Copyright (C) 2009 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.5)\r
+ * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle\r
* \r
- * This program is free software; you can redistribute it and/or\r
- * modify it under the terms of the GNU General Public License\r
- * as published by the Free Software Foundation; either version 2\r
- * of the License, or (at your option) any later version.\r
+ * This file is part of Jalview.\r
* \r
- * This program is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
- * GNU General Public License for more details.\r
+ * Jalview is free software: you can redistribute it and/or\r
+ * modify it under the terms of the GNU General Public License \r
+ * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\r
* \r
- * You should have received a copy of the GNU General Public License\r
- * along with this program; if not, write to the Free Software\r
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA\r
+ * Jalview is distributed in the hope that it will be useful, but \r
+ * WITHOUT ANY WARRANTY; without even the implied warranty \r
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR \r
+ * PURPOSE. See the GNU General Public License for more details.\r
+ * \r
+ * You should have received a copy of the GNU General Public License along with Jalview. If not, see <http://www.gnu.org/licenses/>.\r
*/\r
package jalview.io.vamsas;\r
\r
import uk.ac.vamsas.objects.core.Sequence;\r
\r
/**\r
- * synchronize a vamsas dataset sequence with a jalview dataset sequence.\r
- * This class deals with all sequence features and database references associated with\r
- * the jalview sequence.\r
+ * synchronize a vamsas dataset sequence with a jalview dataset sequence. This\r
+ * class deals with all sequence features and database references associated\r
+ * with the jalview sequence.\r
+ * \r
* @author JimP\r
- *\r
+ * \r
*/\r
public class Datasetsequence extends DatastoreItem\r
{\r
String dict;\r
+\r
private DataSet dataset;\r
+\r
// private AlignmentI jvdset;\r
\r
public Datasetsequence(VamsasAppDatastore vamsasAppDatastore,\r
public void addFromDocument()\r
{\r
Sequence vseq = (Sequence) vobj;\r
- SequenceI dsseq = new jalview.datamodel.Sequence(vseq.getName(), \r
- vseq.getSequence(),\r
- (int) vseq.getStart(), (int) vseq.getEnd());\r
+ SequenceI dsseq = new jalview.datamodel.Sequence(vseq.getName(), vseq\r
+ .getSequence(), (int) vseq.getStart(), (int) vseq.getEnd());\r
dsseq.setDescription(vseq.getDescription());\r
bindjvvobj(dsseq, vseq);\r
dsseq.setVamsasId(vseq.getVorbaId().getId());\r
jvobj = dsseq;\r
- modified=true;\r
+ modified = true;\r
}\r
+\r
public void updateFromDoc()\r
{\r
Sequence sq = (Sequence) vobj;\r
SequenceI sequence = (SequenceI) jvobj;\r
if (!sequence.getSequenceAsString().equals(sq.getSequence()))\r
{\r
- log.warn("Potential Client Error ! - mismatch of dataset sequence: and jalview internal dataset sequence.");\r
- } else {\r
+ log\r
+ .warn("Potential Client Error ! - mismatch of dataset sequence: and jalview internal dataset sequence.");\r
+ }\r
+ else\r
+ {\r
// verify and update principal attributes.\r
if (sequence.getDescription() != null\r
&& (sequence.getDescription() == null || !sequence\r
modified = true;\r
}\r
if (sequence.getSequence() == null\r
- || !sequence.getSequenceAsString().equals(\r
- sq.getSequence()))\r
+ || !sequence.getSequenceAsString().equals(sq.getSequence()))\r
{\r
if (sequence.getStart() != sq.getStart()\r
|| sequence.getEnd() != sq.getEnd())\r
{\r
// update modified sequence.\r
sequence.setSequence(sq.getSequence());\r
- sequence.setStart((int)sq.getStart());\r
- sequence.setEnd((int)sq.getEnd());\r
+ sequence.setStart((int) sq.getStart());\r
+ sequence.setEnd((int) sq.getEnd());\r
modified = true;\r
}\r
}\r
}\r
modified |= updateJvDbRefs();\r
// updateJvFeatures();\r
- } \r
+ }\r
}\r
\r
-/*\r
- private void updateJvFeatures()\r
- {\r
- Sequence vsq = (Sequence) vobj;\r
- \r
- // add or update any new features/references on dataset sequence\r
- if (vsq.getgetSequenceFeatures() != null)\r
- {\r
- int sfSize = sq.getSequenceFeatures().length;\r
-\r
- for (int sf = 0; sf < sfSize; sf++)\r
- {\r
- new jalview.io.vamsas.Sequencefeature(datastore, (jalview.datamodel.SequenceFeature) sq\r
- .getSequenceFeatures()[sf], dataset, (Sequence) vobj);\r
- }\r
- } \r
- }\r
-*/\r
+ /*\r
+ * private void updateJvFeatures() { Sequence vsq = (Sequence) vobj;\r
+ * \r
+ * // add or update any new features/references on dataset sequence if\r
+ * (vsq.getgetSequenceFeatures() != null) { int sfSize =\r
+ * sq.getSequenceFeatures().length;\r
+ * \r
+ * for (int sf = 0; sf < sfSize; sf++) { new\r
+ * jalview.io.vamsas.Sequencefeature(datastore,\r
+ * (jalview.datamodel.SequenceFeature) sq .getSequenceFeatures()[sf], dataset,\r
+ * (Sequence) vobj); } } }\r
+ */\r
private boolean updateSqFeatures()\r
{\r
- boolean modified=false;\r
+ boolean modified = false;\r
SequenceI sq = (SequenceI) jvobj;\r
- \r
+\r
// add or update any new features/references on dataset sequence\r
if (sq.getSequenceFeatures() != null)\r
{\r
\r
for (int sf = 0; sf < sfSize; sf++)\r
{\r
- modified|=new jalview.io.vamsas.Sequencefeature(datastore, (jalview.datamodel.SequenceFeature) sq\r
- .getSequenceFeatures()[sf], dataset, (Sequence) vobj).docWasUpdated();\r
+ modified |= new jalview.io.vamsas.Sequencefeature(datastore,\r
+ (jalview.datamodel.SequenceFeature) sq\r
+ .getSequenceFeatures()[sf], dataset,\r
+ (Sequence) vobj).docWasUpdated();\r
}\r
}\r
return modified;\r
dataset.addSequence(sequence);\r
vobj = sequence;\r
updateSqFeatures();\r
- updateDbRefs();//sq,(Sequence) vobj, dataset);\r
+ updateDbRefs();// sq,(Sequence) vobj, dataset);\r
}\r
+\r
/**\r
* sync database references from jv to document\r
+ * \r
* @return true if document was modified\r
*/\r
- private boolean updateDbRefs() {\r
- boolean modifiedthedoc=false;\r
+ private boolean updateDbRefs()\r
+ {\r
+ boolean modifiedthedoc = false;\r
SequenceI sq = (SequenceI) jvobj;\r
- \r
+\r
if (sq.getDatasetSequence() == null && sq.getDBRef() != null)\r
{\r
// only sync database references for dataset sequences\r
DBRefEntry[] entries = sq.getDBRef();\r
- //jalview.datamodel.DBRefEntry dbentry;\r
+ // jalview.datamodel.DBRefEntry dbentry;\r
for (int db = 0; db < entries.length; db++)\r
{\r
- modifiedthedoc|= new jalview.io.vamsas.Dbref(datastore,\r
- //dbentry = \r
- entries[db], sq, (Sequence) vobj, dataset).docWasUpdated();\r
- \r
+ modifiedthedoc |= new jalview.io.vamsas.Dbref(datastore,\r
+ // dbentry =\r
+ entries[db], sq, (Sequence) vobj, dataset).docWasUpdated();\r
+\r
}\r
\r
}\r
return modifiedthedoc;\r
}\r
+\r
/**\r
* sync database references from document to jv sequence\r
+ * \r
* @return true if local sequence refs were modified\r
*/\r
- private boolean updateJvDbRefs() {\r
- boolean modifiedtheseq=false;\r
+ private boolean updateJvDbRefs()\r
+ {\r
+ boolean modifiedtheseq = false;\r
SequenceI sq = (SequenceI) jvobj;\r
Sequence vsq = (Sequence) vobj;\r
- if (vsq.getDbRefCount()>0) {\r
+ if (vsq.getDbRefCount() > 0)\r
+ {\r
// only sync database references for dataset sequences\r
DbRef[] entries = vsq.getDbRef();\r
- //DbRef dbentry;\r
+ // DbRef dbentry;\r
for (int db = 0; db < entries.length; db++)\r
{\r
- modifiedtheseq|= new jalview.io.vamsas.Dbref(datastore,\r
- //dbentry = \r
- entries[db], vsq, sq).jvWasUpdated();\r
+ modifiedtheseq |= new jalview.io.vamsas.Dbref(datastore,\r
+ // dbentry =\r
+ entries[db], vsq, sq).jvWasUpdated();\r
}\r
}\r
return modifiedtheseq;\r
\r
public void conflict()\r
{\r
- log.warn("Conflict in dataset sequence update to document. Overwriting document");\r
+ log\r
+ .warn("Conflict in dataset sequence update to document. Overwriting document");\r
// TODO: could try to import from document data to jalview first. and then\r
updateToDoc();\r
}\r
+\r
boolean modified = false;\r
+\r
public void updateToDoc()\r
{\r
SequenceI sq = (SequenceI) jvobj;\r
modified = true;\r
}\r
if (sequence.getSequence() == null\r
- || !sequence.getSequence().equals(\r
- sq.getSequenceAsString()))\r
+ || !sequence.getSequence().equals(sq.getSequenceAsString()))\r
{\r
if (sequence.getStart() != sq.getStart()\r
|| sequence.getEnd() != sq.getEnd())\r
\r
/**\r
* (probably could just do vobj.isModified(), but..)\r
+ * \r
* @return true if document's dataset sequence was modified\r
*/\r
public boolean getModified()\r