[Erp5-report] r31438 kazuhiko - /erp5/trunk/products/ERP5/Document/

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Dec 23 14:04:35 CET 2009


Author: kazuhiko
Date: Wed Dec 23 14:04:35 2009
New Revision: 31438

URL: http://svn.erp5.org?rev=31438&view=rev
Log:
implement VariationDivergenceTester.generateHashKey().

Modified:
    erp5/trunk/products/ERP5/Document/VariationDivergenceTester.py

Modified: erp5/trunk/products/ERP5/Document/VariationDivergenceTester.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/VariationDivergenceTester.py?rev=31438&r1=31437&r2=31438&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/VariationDivergenceTester.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/VariationDivergenceTester.py [utf8] Wed Dec 23 14:04:35 2009
@@ -88,6 +88,26 @@
           dict(property_name=tested_property))
     return None
 
+  def generateHashKey(self, movement):
+    """
+    Returns a hash key which can be used to optimise the
+    matching algorithm between movements. The purpose
+    of this hash key is to reduce the size of lists of
+    movements which need to be compared using the compare
+    method (quadratic complexity).
+
+    If decision_movement is a simulation movement, use
+    the recorded properties instead of the native ones.
+    """
+    value_list = []
+    for tested_property in ('variation_category_list',
+                            'variation_property_dict'):
+      if movement.isPropertyRecorded(tested_property):
+        value_list.append(movement.getRecordedProperty(tested_property))
+      else:
+        value_list.append(movement.getProperty(tested_property))
+    return '%s/%r' % (self.getPortalType(), value_list)
+
   def getUpdatablePropertyDict(self, prevision_movement, decision_movement):
     """
     Returns a list of properties to update on decision_movement




More information about the Erp5-report mailing list