unregistered.__vorba = vorbafactory;
else
if (unregistered.__vorba!=vorbafactory) {
- // TODO: LATER: decide if this is allowed - it isn't for the moment.
- log.error("Attempt to overwrite info in a registered vorba object! - Implementation fix needed.");
+ // LATER: decide if this is allowed - it isn't for the moment.
+ log.error("Attempt to overwrite info in a registered vorba object (under a different IVorgaIdFactory) ! - Implementation fix needed.");
return null;
} else {
// probably didn't need to call registerObject.
/**
* Generated when a new vamsas document is created (perhaps from some existing
* Vamsas data) so an application may do its own data space initialization.
- * TODO: decide if this is called when an app is connected to a stored
- * session...
+ * Raised for a new application connecting to a vamsas document
+ * which contains no existing data for that application.
*/
public static final String DOCUMENT_CREATE = "org.vamsas.client.events.documentCreateEvent";
* Generated by Vorba stub for the sole remaining client, after the penultimate
* client makes a call to finalizeClient(). It is only raised if the session has been modifies since the
* last call to storeDocument() by any application.
- * TODO: LATER: copies of a document should be on a per-user basis for multi-user sessions.
+ * LATER: copies of a document should be on a per-user basis for multi-user sessions.
* Sequence is as follows : 1. All other vamsas clients have
* called finalizeClient() 2. Final living client monitors closures, and
* realises that it is last. 3. Final client generates event to prompt
* created by an IClientFactory instance for a particular session,
* user, and application handle.
* (it's VORBA, not CORBA!)
- * TODO: add exceptions for timeouts raised when there are problems accessing session data (because another application is hogging it).
- * TODO: LATER: think about situations when two applications both want a ClientDocument at the same time - can one have read-only access (and be told that another is about to update)
+ * LATER: add exceptions for timeouts raised when there are problems accessing session data (because another application is hogging it).
+ * LATER: think about situations when two applications both want a ClientDocument at the same time - can one have read-only access (and be told that another is about to update)
*/
public interface IClient {
/**
* Self-documenting/describing info for the application to present
* to the user.
- * TODO: formalise this for describing VAMSAS system, a particular
+ * LATER: formalise this for describing VAMSAS system, a particular
* Vorba client agent, and a particular session.
- * @returns string like VamsasClient v.1.1.1 (GPL) and whatever
+ * @return string like VamsasClient v.1.1.1 (GPL) and whatever
*/
public String getAbout();
* 'RequestToCloseDocument' events from the Vorba
* agent in the latter case and so prompt the user
* to save the session locally.
- * TODO: pick a better name ?
+ * LATER: pick a better name ?
*/
public void finalizeClient();
/**
* Any application may call importDocument to merge a stored
* vamsasDocument into the current session.
* Note: use a IClientFactory's implementation to make sessions out of vamsas documnts
- * TODO: LATER: VAMSAS: The IClient implementation will handle all ID 'relocations'
+ * LATER: VAMSAS: The IClient implementation will handle all ID 'relocations'
* @param location
*/
public void importDocument(java.io.File location);
* values for EventChain.
* The EventChain value is passed as the
* propertyName in the java.bean.PropertyChangeEvent
- * TODO: extend class to form own vamsas Event/Listener model.
+ * LATER: extend class to form own vamsas Event/Listener model.
* @param EventChain Name of event. Blank/null registers handler for all events.
* @param evt - event handler function.
*/
* Exceptions are raised for any failures. Any stateful calls to the session prior to
* this will result in an implicit call to joinSession - if that results in an exception
* then the VamsasClient should raise an Error.
- * TODO: create VAMSAS exception hierarchy (in a language agnostic manner)
+ * LATER: create VAMSAS exception hierarchy (in a language agnostic manner)
*/
public void joinSession() throws Exception;
}
// easy - just check if anything has changed and do provenance
object oldversion = getObject(newroots[i].getVorbaId());
if (oldversion instanceof VAMSAS) {
- // TODO: appropriate merging behaviour when two clients have
+ // LATER: appropriate merging behaviour when two clients have
// modified the same registered object independently
if (newroots[i].get__last_hash() != newroots[i].hashCode()) {
// client has modified this object since last retrieval.
* Call blocks whilst other apps do any appData finalizing
* and then returns (after locking the vamsasDocument in the session)
* @return Lock for session.vamArchive
+ * @param STORE_WAIT indicates how lock the call will block for when nothing appears to be happening to the session.
*/
protected Lock want_to_store() {
log.debug("Waiting for other apps to do FinalizeApp handling.");
try {
session.addStoreDocumentRequest(client.getClientHandle(), client.getUserHandle());
} catch (Exception e) {
- log.warn("Whilst writing StoreDocumentRequest for ("+client.getClientHandle().getClientUrn()+" "+client.getUserHandle(),
+ log.warn("Whilst writing StoreDocumentRequest for "+client.getClientHandle().getClientUrn()+" "+client.getUserHandle(),
e);
log.info("trying to continue.");
}
/*
* (non-Javadoc)
- * TODO: LATER: check that build substitution variables are correct
+ * LATER: check that build substitution variables are correct
* @see org.vamsas.client.IClient#getAbout()
*/
public String getAbout() {
VamsasArchive va = null;
try {
+ // TODO: bail out if it takes too long to get the lock ?
va = _session.getVamsasDocument();
}
catch (IOException e) {
- throw new IOException("Failed to get kock on session document");
+ throw new IOException("Failed to get lock on session document");
}
VamsasDocument doc=null;
IdFactory vorba = null;
log.debug("Transferring vamsas data from "+archive+" to session:"+vamArchive.sessionFile);
SessionFile xtantdoc = new SessionFile(archive);
vamArchive.updateFrom(null, xtantdoc);
- // TODO: LATER: decide if session archive provenance should be updated to reflect access.
+ // LATER: decide if session archive provenance should be updated to reflect access.
// TODO: soon! do a proper import objects from external file
log.debug("Transfer complete.");
}