commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnue] r7327 - trunk/gnue-common/src/datasources/drivers/Base


From: reinhard
Subject: [gnue] r7327 - trunk/gnue-common/src/datasources/drivers/Base
Date: Fri, 8 Apr 2005 18:14:37 -0500 (CDT)

Author: reinhard
Date: 2005-04-08 18:14:36 -0500 (Fri, 08 Apr 2005)
New Revision: 7327

Modified:
   trunk/gnue-common/src/datasources/drivers/Base/DataObject.py
   trunk/gnue-common/src/datasources/drivers/Base/ResultSet.py
Log:
Phased out some obsolete functions and variables.


Modified: trunk/gnue-common/src/datasources/drivers/Base/DataObject.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/Base/DataObject.py        
2005-04-08 22:43:05 UTC (rev 7326)
+++ trunk/gnue-common/src/datasources/drivers/Base/DataObject.py        
2005-04-08 23:14:36 UTC (rev 7327)
@@ -23,8 +23,6 @@
 
 __all__ = ['DataObject']
 
-from ResultSet import ResultSet
-
 from gnue.common.apps import GDebug
 from gnue.common.datasources import GConditions, Exceptions
 import string

Modified: trunk/gnue-common/src/datasources/drivers/Base/ResultSet.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/Base/ResultSet.py 2005-04-08 
22:43:05 UTC (rev 7326)
+++ trunk/gnue-common/src/datasources/drivers/Base/ResultSet.py 2005-04-08 
23:14:36 UTC (rev 7327)
@@ -35,8 +35,6 @@
 
 class ResultSet:
 
-  _recordSetClass = RecordSet
-
   # ---------------------------------------------------------------------------
   # Constructor
   # ---------------------------------------------------------------------------
@@ -117,7 +115,7 @@
 
   def isLastRecord (self):
     if self._currentRecord < len(self._cachedRecords) - 1 or \
-       self._cacheNextRecord():
+       self.__cacheNextRecord():
       return False
     else:
       return True
@@ -169,22 +167,49 @@
 
 
   # ---------------------------------------------------------------------------
-  # Load cacheCount number of new records
+  # Create a new RecordSet instance
   # ---------------------------------------------------------------------------
 
-  def _cacheNextRecord (self):
-    rs = self._loadNextRecord()
-    if rs:
-      self._dataObject._dataSource._onRecordLoaded(self._cachedRecords[-1])
-    return rs
+  def __createRecord (self, initialData = {}, position = None):
 
+    record = RecordSet (parent           = self,
+                        initialData      = initialData,
+                        rowidField       = self.__rowidField,
+                        primarykeyFields = self.__primarykeyFields)
 
+    if position is None:
+      self._cachedRecords.append (record)
+    else:
+      self._cachedRecords.insert (position, record)
+
+    return record
+
+
   # ---------------------------------------------------------------------------
+  # Load next record from backend into cache
+  # ---------------------------------------------------------------------------
+
+  def __cacheNextRecord (self):
+
+    if not self.__generator:
+      return False
+
+    try:
+      row = self.__generator.next ()
+    except StopIteration:
+      return False
+
+    record = self.__createRecord (initialData = row)
+    self._dataObject._dataSource._onRecordLoaded (record)
+    return True
+
+
+  # ---------------------------------------------------------------------------
   # Get a specific record (0=based)
   # ---------------------------------------------------------------------------
 
   def getRecord (self, record):
-    while (record + 1 > len (self._cachedRecords)) and self._cacheNextRecord 
():
+    while (record + 1 > len (self._cachedRecords)) and self.__cacheNextRecord 
():
       pass
 
     if record + 1 > len (self._cachedRecords):
@@ -204,7 +229,7 @@
     """
 
     # First, load all records into the cache
-    while self._cacheNextRecord():
+    while self.__cacheNextRecord():
       pass
 
     # Now build up the array
@@ -282,7 +307,7 @@
   # ---------------------------------------------------------------------------
 
   def setRecord (self, record):
-    while (record > len(self._cachedRecords) -1) and self._cacheNextRecord():
+    while (record > len(self._cachedRecords) -1) and self.__cacheNextRecord():
       pass
     if record >= len(self._cachedRecords):
       return None
@@ -294,7 +319,7 @@
 
   def nextRecord (self):
     if self._currentRecord + 1 == len (self._cachedRecords):
-      if not self._cacheNextRecord ():
+      if not self.__cacheNextRecord ():
         return None
     self.__move (self._currentRecord + 1)
     return self.current
@@ -312,7 +337,7 @@
 
   def firstRecord (self):
     if self._currentRecord < 0:
-      if not self._cacheNextRecord():
+      if not self.__cacheNextRecord():
         return None
     self.__move (0)
     return self.current
@@ -323,7 +348,7 @@
     if self._currentRecord == -1:
       return None
     else:
-      while self._cacheNextRecord():
+      while self.__cacheNextRecord():
         pass
       self.__move (len (self._cachedRecords) - 1)
       return self.current
@@ -342,7 +367,7 @@
     """
 
     # Make sure that all records are cached
-    while self._cacheNextRecord():
+    while self.__cacheNextRecord():
       pass
 
     # Find match
@@ -373,20 +398,20 @@
       raise Exceptions.ReadOnlyError, tmsg
     else:
       gDebug (8, 'Inserting a blank record in %s' % self)
-      self._currentRecord += 1
-      self._cachedRecords.insert(self._currentRecord, 
self._createEmptyRecord())
       self._recordCount += 1
-      self.current = self._cachedRecords[self._currentRecord]
+      self._currentRecord += 1
+      record = self.__createRecord (position = self._currentRecord)
+      self.current = record
 
       # Set any dataobject-wide default values
       for field in self._dataObject._defaultValues.keys():
         gDebug (8, "DataObject-Wide default for %s" % field)
-        self.current.setField(field, 
self._dataObject._defaultValues[field],False)
+        record.setField(field, self._dataObject._defaultValues[field],False)
 
       # Set any resultset specific values
       for field in self._defaultValues.keys():
         gDebug (8, "ResultSet-specific default for %s" % field)
-        self.current.setField(field, self._defaultValues[field],False)
+        record.setField(field, self._defaultValues[field],False)
 
       # Pull any primary keys from a master record set
       if self._masterRecordSet != None and hasattr(self._dataObject, 
'_masterfields'):
@@ -394,12 +419,12 @@
         for field in self._dataObject._masterfields:
           gDebug (8, "Value for %s to %s" % (field, \
                      self._masterRecordSet.getField (field)))
-          
self.current.setField(self._dataObject._detailfields[i],self._masterRecordSet.getField(field),False)
+          
record.setField(self._dataObject._detailfields[i],self._masterRecordSet.getField(field),False)
           i += 1
 
       self.notifyDetailObjects()
       self.__notifyListeners ()
-      return self.current
+      return record
 
 
   # ---------------------------------------------------------------------------
@@ -556,36 +581,6 @@
   # Virtual methods
   # ---------------------------------------------------------------------------
 
-  # Load cacheCount number of new records (deprecated)
-  def _loadNextRecord (self):
-
-    if not self.__generator:
-      return False
-
-    try:
-      row = self.__generator.next ()
-    except StopIteration:
-      return False
-
-    record = RecordSet (parent           = self,
-                        initialData      = row,
-                        rowidField       = self.__rowidField,
-                        primarykeyFields = self.__primarykeyFields)
-
-    self._cachedRecords.append (record)
-    return True
-
-
-  # ---------------------------------------------------------------------------
-
-  # Create an empty recordset
-  def _createEmptyRecord (self):
-    return self._recordSetClass (parent = self,
-        rowidField = self.__rowidField,
-        primarykeyFields = self.__primarykeyFields)
-
-  # ---------------------------------------------------------------------------
-
   def _count (self):
     """
     Return the number of records returned by the query.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]