introduced hashCode based object change detection that works (see vamsas.test.example...
[vamsas.git] / src / uk / ac / vamsas / client / Vobjhash.java
index 767a9a6..1b258dc 100644 (file)
@@ -7,13 +7,17 @@ package uk.ac.vamsas.client;
  *\r
  */\r
 public class Vobjhash {\r
-  long hashvalue;\r
+  private static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(Vobjhash.class); \r
+  long  hashvalue;\r
   /**\r
    * creates a record of the hash value for a vamsas document object\r
    * @param tobemarshalled\r
    */\r
   public Vobjhash(Vobject tobemarshalled) {\r
-    hashvalue = tobemarshalled.__getLHash();\r
+    tobemarshalled.doHash();\r
+    hashvalue = tobemarshalled.get__last_hash();\r
+    if (log.isDebugEnabled())\r
+      log.debug(tobemarshalled.getVorbaId()+":"+hashvalue);\r
   }\r
   /**\r
    * compares the old hash value with the unmarshalled object's most recently computed hash value and updates internal record.\r
@@ -22,7 +26,10 @@ public class Vobjhash {
    */\r
   public boolean isUpdated(Vobject unmarshalled) {\r
     long oldhash = hashvalue;\r
-    hashvalue=unmarshalled.__getLHash();\r
+    unmarshalled.doHash();\r
+    hashvalue=unmarshalled.get__last_hash();\r
+    if (log.isDebugEnabled() && oldhash!=hashvalue)\r
+      log.debug(" has changed."+unmarshalled.getVorbaId());\r
     return oldhash!=hashvalue;\r
   }\r
 }\r