Update of /cvsroot/webware/Webware/MiddleKit/Run
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv528
Modified Files:
SQLObjectStore.py
Log Message:
Added objRefInMem helper method which I forgot to check in earlier.
It's needed by MiddleObject.updateReferencingListAttrs().
Index: SQLObjectStore.py
===================================================================
RCS file: /cvsroot/webware/Webware/MiddleKit/Run/SQLObjectStore.py,v
retrieving revision 1.66
retrieving revision 1.67
diff -C2 -d -r1.66 -r1.67
*** SQLObjectStore.py 12 Mar 2004 11:25:52 -0000 1.66
--- SQLObjectStore.py 27 Mar 2004 20:04:49 -0000 1.67
***************
*** 468,471 ****
--- 468,491 ----
return self.objRefDangles(objRef)
+ def objRefInMem(self, objRef):
+ """ Return the object corresponding to the given objref if and only
+ if it has been loaded into memory. If the object has never been
+ fetched from the database, None is returned. """
+ assert type(objRef) is LongType, 'type=%r, objRef=%r' % (type(objRef), objRef)
+ if objRef==0:
+ return 0
+ else:
+ klassId, serialNum = objRefSplit(objRef)
+ if klassId==0 or serialNum==0:
+ # invalid! we don't use 0 serial numbers
+ return self.objRefZeroSerialNum(objRef)
+
+ klass = self.klassForId(klassId)
+
+ # return whether we have this object in memory
+ key = ObjectKey()
+ key.initFromClassNameAndSerialNum(klass.name(), serialNum)
+ return self._objects.get(key, None)
+
def objRefZeroSerialNum(self, objRef):
""" Invoked by fetchObjRef() if either the class or object serial number is 0. """
|