[Top][All Lists]
[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):
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- r5511 - trunk/gnue-appserver/src/language,
reinhard <=