import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.vamsas.client.ClientHandle;
-import org.vamsas.client.SessionHandle;
-import org.vamsas.client.UserHandle;
-import org.vamsas.client.VorbaId;
-import org.vamsas.client.VorbaIdFactory;
-import org.vamsas.client.Vobject;
-import org.vamsas.objects.utils.document.VersionEntries;
+
+import uk.ac.vamsas.client.ClientHandle;
+import uk.ac.vamsas.client.SessionHandle;
+import uk.ac.vamsas.client.UserHandle;
+import uk.ac.vamsas.client.Vobject;
+import uk.ac.vamsas.client.VorbaId;
+import uk.ac.vamsas.client.VorbaIdFactory;
+import uk.ac.vamsas.objects.utils.document.VersionEntries;
import java.util.Hashtable;
import java.util.zip.CRC32;
unique.reset();
unique.update(new Object[] { session, client, user}.toString().getBytes());
// TODO: Ensure format of URNs and use standard composition methods.
- idstring = client.getClientName()+":"+unique.getValue()+".";
+ idstring = client.getClientNCname()+"_"+unique.getValue()+".";
extantids=new Hashtable();
this.extanthashv=new Hashtable();
}
/**
- * values for keys in this hash can be used to reference the org.vamsas.client.Vobject instance for the VorbaId string.
+ * Create IdFactory with existing object hashes and id set
+ * @param session
+ * @param client
+ * @param user
+ * @param extanthashv hash of existing VorbaIds from a previous read of same document
+ */
+ protected IdFactory(SessionHandle session, ClientHandle client, UserHandle user, Hashtable extanthashv) {
+ this(session, client, user);
+ this.extanthashv = extanthashv;
+ }
+ /**
+ * values for keys in this hash can be used to reference the uk.ac.vamsas.client.Vobject instance for the VorbaId string.
* @return the hash of all VorbaIds
*/
protected Hashtable getVorbaIdHash() {
return extanthashv;
}
/* (non-Javadoc)
- * @see org.vamsas.client.VorbaIdFactory#makeVorbaId()
+ * @see uk.ac.vamsas.client.VorbaIdFactory#makeVorbaId()
*/
public VorbaId makeVorbaId(Vobject vobject) {
if (session==null)
}
newidstring=idstring+Integer.toString(sequence);
} while (extantids.containsKey(newidstring));
- extantids.put(newidstring, vobject); // hash the Vobject by its new Id
VorbaId id = newId(newidstring); // VorbaId.hash()==newidstring.hash() so we can still recover vobject
+ extantids.put(id, vobject); // hash the Vobject by its new Id
return id;
}
/* (non-Javadoc)
- * @see org.vamsas.client.VorbaIdFactory#setSession(org.vamsas.client.SessionHandle)
+ * @see uk.ac.vamsas.client.VorbaIdFactory#setSession(uk.ac.vamsas.client.SessionHandle)
*/
protected void setSession(SessionHandle sessionhandle) {
if (sessionhandle!=null)
}
/* (non-Javadoc)
- * @see org.vamsas.client.VorbaIdFactory#getSessionHandle()
+ * @see uk.ac.vamsas.client.VorbaIdFactory#getSessionHandle()
*/
public SessionHandle getSessionHandle() {
return session;
}
/* (non-Javadoc)
- * @see org.vamsas.client.VorbaIdFactory#setClient(org.vamsas.client.ClientHandle)
+ * @see uk.ac.vamsas.client.VorbaIdFactory#setClient(uk.ac.vamsas.client.ClientHandle)
*/
protected void setClient(ClientHandle appHandle) {
if (appHandle!=null)
}
/* (non-Javadoc)
- * @see org.vamsas.client.VorbaIdFactory#getClientHandle()
+ * @see uk.ac.vamsas.client.VorbaIdFactory#getClientHandle()
*/
public ClientHandle getClientHandle() {
return client;
}
/* (non-Javadoc)
- * @see org.vamsas.client.VorbaIdFactory#setUser(org.vamsas.client.UserHandle)
+ * @see uk.ac.vamsas.client.VorbaIdFactory#setUser(uk.ac.vamsas.client.UserHandle)
*/
protected void setUser(UserHandle userHandle) {
if (userHandle!=null)
}
/* (non-Javadoc)
- * @see org.vamsas.client.VorbaIdFactory#getUserHandle()
+ * @see uk.ac.vamsas.client.VorbaIdFactory#getUserHandle()
*/
public UserHandle getUserHandle() {
return user;