[Checkins] SVN: Products.BTreeFolder2/trunk/ Make sure that methods returning objects return them Acquisition wrapped.

Hanno Schlichting hannosch at hannosch.eu
Wed Aug 4 14:35:50 EDT 2010


Log message for revision 115441:
  Make sure that methods returning objects return them Acquisition wrapped.
  

Changed:
  U   Products.BTreeFolder2/trunk/CHANGES.txt
  U   Products.BTreeFolder2/trunk/src/Products/BTreeFolder2/BTreeFolder2.py

-=-
Modified: Products.BTreeFolder2/trunk/CHANGES.txt
===================================================================
--- Products.BTreeFolder2/trunk/CHANGES.txt	2010-08-04 18:11:21 UTC (rev 115440)
+++ Products.BTreeFolder2/trunk/CHANGES.txt	2010-08-04 18:35:50 UTC (rev 115441)
@@ -4,6 +4,8 @@
 2.13.1 (unreleased)
 -------------------
 
+- Make sure that methods returning objects return them Acquisition wrapped.
+
 - Be more careful in calling our own keys, values and items methods, as
   sub-classes might have overridden some of them.
 

Modified: Products.BTreeFolder2/trunk/src/Products/BTreeFolder2/BTreeFolder2.py
===================================================================
--- Products.BTreeFolder2/trunk/src/Products/BTreeFolder2/BTreeFolder2.py	2010-08-04 18:11:21 UTC (rev 115440)
+++ Products.BTreeFolder2/trunk/src/Products/BTreeFolder2/BTreeFolder2.py	2010-08-04 18:35:50 UTC (rev 115441)
@@ -385,12 +385,12 @@
         # If 'spec' is specified, returns only objects whose meta_type
         # match 'spec'.
         if spec is None:
-            return self._tree.values()
+            return LazyMap(self._getOb, self._tree.keys())
         return LazyMap(self._getOb, self.objectIds(spec))
 
     security.declareProtected(access_contents_information, 'values')
     def values(self):
-        return self._tree.values()
+        return LazyMap(self._getOb, self._tree.keys())
 
     security.declareProtected(access_contents_information, 'objectItems')
     def objectItems(self, spec=None):
@@ -398,13 +398,15 @@
         # If 'spec' is specified, returns only objects whose meta_type match
         # 'spec'
         if spec is None:
-            return self._tree.items()
+            return LazyMap(lambda id, _getOb=self._getOb: (id, _getOb(id)),
+                           self._tree.keys())
         return LazyMap(lambda id, _getOb=self._getOb: (id, _getOb(id)),
                        self.objectIds(spec))
 
     security.declareProtected(access_contents_information, 'items')
     def items(self):
-        return self._tree.items()
+        return LazyMap(lambda id, _getOb=self._getOb: (id, _getOb(id)),
+                       self._tree.keys())
 
     security.declareProtected(access_contents_information, 'objectMap')
     def objectMap(self):



More information about the checkins mailing list