+/*
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
+ * Copyright (C) 2008 AM Waterhouse, J Procter, 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 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.
+ *
+ * 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
+ */
package jalview.io.vamsas;
import uk.ac.vamsas.client.Vobject;
/**
- * Implement the basic logic for synchronising changes to or from the Vamsas Document
+ * Implement the basic logic for synchronising changes to or from the Vamsas
+ * Document
+ *
* @author JimP
*/
public abstract class LocalDocSyncObject extends DatastoreItem
{
/**
*
- * @return null or the local object that is being worked on.
+ * @return null or the local object that is being worked on.
*/
public abstract Object getLObject();
+
/**
*
* @return null or the document object that is being worked on
*/
public abstract Vobject getVObject();
-
+
/**
* endpoint for synchronize when all opreations are finished.
*/
public abstract void nextObject();
+
/**
- * called if the local object can be safely updated from the bound document object.
+ * called if the local object can be safely updated from the bound document
+ * object.
*/
public abstract void updateFromDoc();
+
/**
- * called if the associated document object can be safely updated with the local changes
+ * called if the associated document object can be safely updated with the
+ * local changes
*/
public abstract void updateToDoc();
+
/**
* @return true if the local object is modified
*/
public abstract boolean locallyModified();
+
/**
*
* @return true if the bound document object is modified
*/
public abstract boolean documentModified();
+
/**
*
- * @return true if the document object is locked w.r.t. this object's update.
+ * @return true if the document object is locked w.r.t. this object's update.
*/
public abstract boolean documentObjectLocked();
+
/**
*
- * @return a new datastore item instance which binds the local object to a new document object
+ * @return a new datastore item instance which binds the local object to a new
+ * document object
*/
- public abstract LocalDocSyncObject newDocumentObject(); // could make this constructor(Lobject)
+ public abstract LocalDocSyncObject newDocumentObject(); // could make this
+ // constructor(Lobject)
+
/**
*
- * @return a new datastore item instance which binds the document object to a new local object.
+ * @return a new datastore item instance which binds the document object to a
+ * new local object.
*/
- public abstract LocalDocSyncObject newLocalObject(); // make this constructor(Vobject)
+ public abstract LocalDocSyncObject newLocalObject(); // make this
+ // constructor(Vobject)
+
/**
* apply the update/commit logic as defined in the vamsas paper
- * @param documentIsUpdated true if a document update event is being handled
+ *
+ * @param documentIsUpdated
+ * true if a document update event is being handled
*/
- public void synchronize(boolean documentIsUpdated) {
+ public void synchronize(boolean documentIsUpdated)
+ {
Object Lobject = getLObject();
Vobject Vobject = getVObject();
- if (Lobject==null)
+ if (Lobject == null)
{
// no local binding for document object
newLocalObject().synchronize(documentIsUpdated);
return;
}
- if (Vobject==null)
+ if (Vobject == null)
{
// no document binding for local object
newDocumentObject().synchronize(documentIsUpdated);
}
// Check binding is valid
- if (getjv2vObj(Lobject)!=Vobject)
+ if (getjv2vObj(Lobject) != Vobject)
{
// no local binding for document object
newLocalObject().synchronize(documentIsUpdated);