commit-gnue
[Top][All Lists]
Advanced

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

gnue/appserver/src/language Object.py


From: Johannes Vetter
Subject: gnue/appserver/src/language Object.py
Date: Thu, 16 Jan 2003 07:16:03 -0500

CVSROOT:        /cvsroot/gnue
Module name:    gnue
Changes by:     Johannes Vetter <address@hidden>        03/01/16 07:16:03

Modified files:
        appserver/src/language: Object.py 

Log message:
        Added basic support of object modifications.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/appserver/src/language/Object.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text

Patches:
Index: gnue/appserver/src/language/Object.py
diff -c gnue/appserver/src/language/Object.py:1.1 
gnue/appserver/src/language/Object.py:1.2
*** gnue/appserver/src/language/Object.py:1.1   Tue Jan 14 09:40:49 2003
--- gnue/appserver/src/language/Object.py       Thu Jan 16 07:16:03 2003
***************
*** 19,25 ****
  # write to the Free Software Foundation, Inc., 59 Temple Place 
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
! # $Id: Object.py,v 1.1 2003/01/14 14:40:49 jvetter Exp $
  
  
  def newObject (server, sessionId, classname, objData=None):
--- 19,27 ----
  # write to the Free Software Foundation, Inc., 59 Temple Place 
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
! # $Id: Object.py,v 1.2 2003/01/16 12:16:03 jvetter Exp $
! 
! import sys
  
  
  def newObject (server, sessionId, classname, objData=None):
***************
*** 56,64 ****
    def __getattr__ (self, attr):
      if not self._cache.has_key (attr):
        try:
!       res = self._server.load (self._session_id, self._class, 
!                                [self.objectId], [attr]) [0]
!       self._cache[attr] = res[attr]
  
        except:
        raise AttributeError, attr
--- 58,69 ----
    def __getattr__ (self, attr):
      if not self._cache.has_key (attr):
        try:
!       if self._attrIsValid (attr):
!         res = self._server.load (self._session_id, self._class, 
!                                  [self.objectId], [attr]) [0]
!         self._cache[attr] = res[attr]
!         else:
!         raise AttributeError, attr
  
        except:
        raise AttributeError, attr
***************
*** 73,79 ****
      if self.__dict__.has_key (attr):
        self.__dict__[attr] = value
      else:
!       # if attr is an invalid property __getattr__ will raise an exception
!       self.__getattr__ (attr)
        self._cache[attr] = value
      
--- 78,122 ----
      if self.__dict__.has_key (attr):
        self.__dict__[attr] = value
      else:
!       if not self._attrIsValid (attr):
!       raise AttributeError, attr
! 
        self._cache[attr] = value
+ 
+   def __call__ (self, method):
+     pass
      
+   # -------------------------------------------------------------------------
+   # Check if 'attr' is a valid attribute of this class
+   # -------------------------------------------------------------------------
+   def _attrIsValid (self, attr):
+     # TODO: ask the class repository for the attribute
+     # meanwhile we suppose all attributes are valid 
+     return 1
+ 
+ 
+ 
+   # -------------------------------------------------------------------------
+   # Store this instance 
+   # -------------------------------------------------------------------------
+   def store (self):
+     data = []
+     prop = []
+ 
+     # make sure the property-list and the data-list have the same order
+     for key in self._cache.keys ():
+       if key == '_id_': 
+       continue
+       prop.append (key)
+       data.append (self._cache[key])
+ 
+     res = self._server.store (self._session_id, self._class, [self.objectId],
+                               prop, [data])
+     self.objectId = res[0]
+ 
+   # -------------------------------------------------------------------------
+   # Delete instance and clear object-id
+   # -------------------------------------------------------------------------
+   def delete (self):
+     self._server.delete (self._session_id, self._class, [self.objectId])
+     self.objectId = None




reply via email to

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