[Checkins] SVN: Products.ZCatalog/trunk/src/Products/PluginIndexes/DateRangeIndex/DateRangeIndex.py Factor out _insert_migrate method to reduce duplicated code in _insertForwardIndexEntry
Hanno Schlichting
hannosch at hannosch.eu
Tue Jan 25 16:12:27 EST 2011
Log message for revision 119934:
Factor out _insert_migrate method to reduce duplicated code in _insertForwardIndexEntry
Changed:
U Products.ZCatalog/trunk/src/Products/PluginIndexes/DateRangeIndex/DateRangeIndex.py
-=-
Modified: Products.ZCatalog/trunk/src/Products/PluginIndexes/DateRangeIndex/DateRangeIndex.py
===================================================================
--- Products.ZCatalog/trunk/src/Products/PluginIndexes/DateRangeIndex/DateRangeIndex.py 2011-01-25 21:05:35 UTC (rev 119933)
+++ Products.ZCatalog/trunk/src/Products/PluginIndexes/DateRangeIndex/DateRangeIndex.py 2011-01-25 21:12:27 UTC (rev 119934)
@@ -321,48 +321,28 @@
return (difference(resultset, result),
(self._since_field, self._until_field))
+ def _insert_migrate(self, tree, key, value):
+ treeset = tree.get(key, None)
+ if treeset is None:
+ tree[key] = value
+ else:
+ if isinstance(treeset, (int, IISet)):
+ tree[key] = IITreeSet((treeset, value))
+ else:
+ treeset.insert(value)
+
def _insertForwardIndexEntry(self, since, until, documentId):
+ """Insert 'documentId' into the appropriate set based on 'datum'.
"""
- Insert 'documentId' into the appropriate set based on
- 'datum'.
- """
if since is None and until is None:
self._always.insert(documentId)
elif since is None:
- set = self._until_only.get(until, None)
- if set is None:
- self._until_only[until] = documentId
- else:
- if isinstance(set, (int, IISet)):
- set = self._until_only[until] = IITreeSet((set, documentId))
- else:
- set.insert(documentId)
+ self._insert_migrate(self._until_only, until, documentId)
elif until is None:
- set = self._since_only.get(since, None)
- if set is None:
- self._since_only[since] = documentId
- else:
- if isinstance(set, (int, IISet)):
- set = self._since_only[since] = IITreeSet((set, documentId))
- else:
- set.insert(documentId)
+ self._insert_migrate(self._since_only, since, documentId)
else:
- set = self._since.get(since, None)
- if set is None:
- self._since[since] = documentId
- else:
- if isinstance(set, (int, IISet)):
- set = self._since[since] = IITreeSet((set, documentId))
- else:
- set.insert(documentId)
- set = self._until.get(until, None)
- if set is None:
- self._until[until] = documentId
- else:
- if isinstance(set, (int, IISet)):
- set = self._until[until] = IITreeSet((set, documentId))
- else:
- set.insert(documentId)
+ self._insert_migrate(self._since, since, documentId)
+ self._insert_migrate(self._until, until, documentId)
def _removeForwardIndexEntry(self, since, until, documentId):
"""
More information about the checkins
mailing list