commit-gnue
[Top][All Lists]
Advanced

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

gnue common/src/GDataSource.py appserver/src/ge...


From: Jan Ischebeck
Subject: gnue common/src/GDataSource.py appserver/src/ge...
Date: Wed, 03 Jul 2002 11:58:32 -0400

CVSROOT:        /cvsroot/gnue
Module name:    gnue
Changes by:     Jan Ischebeck <address@hidden>  02/07/03 11:58:32

Modified files:
        common/src     : GDataSource.py 
        appserver/src  : geasInstance.py geasTrigger.py 
        common/src/dbdrivers/appserver: DBdriver.py 

Log message:
        - add a global 'call' function to the trigger namespace
        - make appserver support that function and call the instance.call 
function
        of the current record
        - add default datasourceEntrys entry to make not GObj based access to 
datasources cleaner.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/src/GDataSource.py.diff?tr1=1.35&tr2=1.36&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/appserver/src/geasInstance.py.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/appserver/src/geasTrigger.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/src/dbdrivers/appserver/DBdriver.py.diff?tr1=1.7&tr2=1.8&r1=text&r2=text

Patches:
Index: gnue/appserver/src/geasInstance.py
diff -c gnue/appserver/src/geasInstance.py:1.5 
gnue/appserver/src/geasInstance.py:1.6
*** gnue/appserver/src/geasInstance.py:1.5      Sun May 26 17:15:29 2002
--- gnue/appserver/src/geasInstance.py  Wed Jul  3 11:58:32 2002
***************
*** 19,25 ****
  # write to the Free Software Foundation, Inc., 59 Temple Place 
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
! # $Id: geasInstance.py,v 1.5 2002/05/26 21:15:29 reinhard Exp $
  
  # 
=============================================================================
  # Instance class
--- 19,25 ----
  # write to the Free Software Foundation, Inc., 59 Temple Place 
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
! # $Id: geasInstance.py,v 1.6 2002/07/03 15:58:32 siesel Exp $
  
  # 
=============================================================================
  # Instance class
***************
*** 56,64 ****
    # Call a method
    # 
---------------------------------------------------------------------------
  
!   def call (self, methodname):
      # not yet implemented
!     pass
  
    # 
---------------------------------------------------------------------------
    # Delete this instance 
--- 56,73 ----
    # Call a method
    # 
---------------------------------------------------------------------------
  
!   def call (self, methodname, params):
      # not yet implemented
! 
!     # just containing a basic test method
!     if methodname=="show":
!       print "Function 'show' was called. This record contains the following 
"+\
!             " values:"
!       for i in self._record._fields.keys():
!         print "%s : %s " % (i,self._record._fields[i])
!       print
!     else:
!       print "The method %s is not implemented." % methodname
  
    # 
---------------------------------------------------------------------------
    # Delete this instance 
Index: gnue/appserver/src/geasTrigger.py
diff -c gnue/appserver/src/geasTrigger.py:1.1 
gnue/appserver/src/geasTrigger.py:1.2
*** gnue/appserver/src/geasTrigger.py:1.1       Thu Jun 20 20:34:33 2002
--- gnue/appserver/src/geasTrigger.py   Wed Jul  3 11:58:32 2002
***************
*** 19,25 ****
  # write to the Free Software Foundation, Inc., 59 Temple Place 
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
! # $Id: geasTrigger.py,v 1.1 2002/06/21 00:34:33 siesel Exp $
  
  import geasList
  import string,new
--- 19,25 ----
  # write to the Free Software Foundation, Inc., 59 Temple Place 
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
! # $Id: geasTrigger.py,v 1.2 2002/07/03 15:58:32 siesel Exp $
  
  import geasList
  import string,new
***************
*** 96,102 ****
      # format code
      
      ccode=compile (code,'<string>','exec')
!     myfunc=new.function(ccode, {}, triggername)
      
      return myfunc
  
--- 96,102 ----
      # format code
      
      ccode=compile (code,'<string>','exec')
!     myfunc=new.function(ccode, {'session':self._session}, triggername)
      
      return myfunc
  
***************
*** 127,133 ****
      # format code
      
      ccode=compile (code,'<string>','exec')
!     myfunc=new.function(ccode, {}, instance.get('name'))
      
      return myfunc
  
--- 127,133 ----
      # format code
      
      ccode=compile (code,'<string>','exec')
!     myfunc=new.function(ccode, {'session':self._session}, 
instance.get('name'))
      
      return myfunc
  
Index: gnue/common/src/GDataSource.py
diff -c gnue/common/src/GDataSource.py:1.35 gnue/common/src/GDataSource.py:1.36
*** gnue/common/src/GDataSource.py:1.35 Mon Jul  1 19:09:14 2002
--- gnue/common/src/GDataSource.py      Wed Jul  3 11:58:32 2002
***************
*** 65,70 ****
--- 65,71 ----
      self._toplevelParent = self._type # Needs to be set by subclass
                                        # so that _topObject gets set
      self._topObject = None
+     self._datasourceDictionary={}
  
      #
      # trigger support
***************
*** 77,82 ****
--- 78,86 ----
                                
'delete':{'function':self.deleteCurrentRecordsetEntry,
                                          'global':1,
                                          },
+                               
'call':{'function':self.callFuncOfCurrentRecordsetEntry,
+                                         'global':1,
+                                         },
  
                                }
  
***************
*** 111,117 ****
  
    def deleteCurrentRecordsetEntry(self):
      self._currentResultSet.getPostingRecordset().delete()
! 
    #
    # This method should be called after the object is created
    # but before any other methods are called
--- 115,129 ----
  
    def deleteCurrentRecordsetEntry(self):
      self._currentResultSet.getPostingRecordset().delete()
!     
!   def callFuncOfCurrentRecordsetEntry(self,name,params):
!     n=self._currentResultSet.getRecordNumber()
!     rset=self._currentResultSet.getRecord(n)
!     if hasattr(rset,'callFunc'):
!       rset.callFunc(name,params)
!     else:
!       raise StandardError, \
!             _("Backend doesn't support the trigger 'call' function")    
    #
    # This method should be called after the object is created
    # but before any other methods are called
Index: gnue/common/src/dbdrivers/appserver/DBdriver.py
diff -c gnue/common/src/dbdrivers/appserver/DBdriver.py:1.7 
gnue/common/src/dbdrivers/appserver/DBdriver.py:1.8
*** gnue/common/src/dbdrivers/appserver/DBdriver.py:1.7 Wed Jun  5 15:15:58 2002
--- gnue/common/src/dbdrivers/appserver/DBdriver.py     Wed Jul  3 11:58:32 2002
***************
*** 58,64 ****
      self._updateFlag = 0
      self._insertFlag = 0
      self._deleteFlag = 0
!       
  
    
  # GEASv2_ResultSet
--- 58,75 ----
      self._updateFlag = 0
      self._insertFlag = 0
      self._deleteFlag = 0
! 
!   # this function calls a per entry function on server side
!   def callFunc(self,name,params):
!     if hasattr(self,"_instance"):
!       self._instance.call(name,params)
!     else:
!       print ("BUG: Function %s could not be called on a newly created and 
not"+
!              "commited object (this has to be fixed)") % name
!       #  at the moment newly created objects are just created localy and
!       #  not created on appserver too. So there is no way to call a function
!       #  off a newly created object/recordset at the moment.
!       #  this has to be changed.
  
    
  # GEASv2_ResultSet
***************
*** 236,243 ****
            # self._session.close()
            raise GDataObjects.ConnectionError, "Error loging into appserver"
  
! #      self.triggerExtensions = TriggerExtensions(self._dataConnection)
!       self.triggerExtensions = TriggerExtensions(self._session)
  
      except:
        raise GDataObjects.ConnectionError, "Error loging into appserver"
--- 247,253 ----
            # self._session.close()
            raise GDataObjects.ConnectionError, "Error loging into appserver"
  
!       self.triggerExtensions =  GEASv2_TriggerExtensions(self._session)
  
      except:
        raise GDataObjects.ConnectionError, "Error loging into appserver"
***************
*** 374,380 ****
  }
  
  
! class TriggerExtensions:
  
-     def __init__(self, connection):
-         pass
--- 384,411 ----
  }
  
  
! #
! #  Extensions to Trigger Namespaces
! #
! class GEASv2_TriggerExtensions:
! 
!   def __init__(self, session):
!     self.__session = session
!     
!   # Return a sequence number from sequence 'name'
!   # def getSequence(self, name):
!   # !!! has to be emulated !!!
!   # return self.__singleQuery("select nextval('%s')" % name)
! 
!   # Run the SQL statement 'statement'
!   #def sql(self, statement):
!   # !!! has to be emulated !!!
!   #  cursor = self.__connection.cursor()
!   #  try:
!   #    cursor.execute(statement)
!   #    cursor.close()
!   #  except:
!   #    cursor.close()
!   #    raise
! 
  



reply via email to

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