[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