commit-gnue
[Top][All Lists]
Advanced

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

r5511 - trunk/gnue-appserver/src/language


From: reinhard
Subject: r5511 - trunk/gnue-appserver/src/language
Date: Thu, 25 Mar 2004 16:48:20 -0600 (CST)

Author: reinhard
Date: 2004-03-25 16:48:19 -0600 (Thu, 25 Mar 2004)
New Revision: 5511

Modified:
   trunk/gnue-appserver/src/language/Object.py
Log:
Request objectId immediately on object creation, introduced __repr__ method.


Modified: trunk/gnue-appserver/src/language/Object.py
===================================================================
--- trunk/gnue-appserver/src/language/Object.py 2004-03-25 22:01:18 UTC (rev 
5510)
+++ trunk/gnue-appserver/src/language/Object.py 2004-03-25 22:48:19 UTC (rev 
5511)
@@ -55,7 +55,15 @@
     self.__dict__['_Object__session'] = session
     self.__dict__['_Object__class']   = classname
 
+    if self.objectId is None:
+      # Create new object
+      sm   = self.__session.getSessionManager ()
+      sid  = self.__session.getSessionId ()
 
+      res = sm.store (sid, self.__class, [None], [], [[]])
+      self.objectId = res [0]
+
+
   # -------------------------------------------------------------------------
   # Return an attribute's value; if not available in cache load from server
   # -------------------------------------------------------------------------
@@ -71,20 +79,14 @@
       sm   = self.__session.getSessionManager ()
       sid  = self.__session.getSessionId ()
 
-      if self.objectId:
-        try:
-          res = sm.load (sid, self.__class, [self.objectId, ''], [name])
-          (value, datatype) = (res [0][0], res [1][0])
+      try:
+        res = sm.load (sid, self.__class, [self.objectId, ''], [name])
+        (value, datatype) = (res [0][0], res [1][0])
 
-        except:
-          # TODO: use a more specific exception 
-          return None
+      except:
+        # TODO: use a more specific exception 
+        return None
 
-      # if no objectId is available we assume it's a new object
-      else:
-        res = sm.load (sid, self.__class, [''], [name])
-        (value, datatype) = (None, res [0][0])
-
       # Convert reference fields to object references
       if string.split (datatype, '(', 1) [0] in \
          ['id', 'string', 'number', 'date', 'time', 'datetime', 'boolean']:
@@ -108,8 +110,7 @@
       sm   = self.__session.getSessionManager ()
       sid  = self.__session.getSessionId ()
 
-      res = sm.store (sid, self.__class, [self.objectId], [name], [[value]])
-      self.objectId = res [0]
+      sm.store (sid, self.__class, [self.objectId], [name], [[value]])
 
     else:
       raise AttributeError, attr
@@ -123,6 +124,13 @@
 
 
   # -------------------------------------------------------------------------
+  # Return the Object as string representation
+  # -------------------------------------------------------------------------
+  def __repr__ (self):
+    return '<%s instance with id %s>' % (self.__class, self.objectId)
+
+
+  # -------------------------------------------------------------------------
   # Make object['property'] possible
   # -------------------------------------------------------------------------
   def __getitem__ (self, item):





reply via email to

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