[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
r5380 - in trunk/gnue-appserver/src: . language
From: |
reinhard |
Subject: |
r5380 - in trunk/gnue-appserver/src: . language |
Date: |
Fri, 19 Mar 2004 12:30:54 -0600 (CST) |
Author: reinhard
Date: 2004-03-19 12:30:52 -0600 (Fri, 19 Mar 2004)
New Revision: 5380
Modified:
trunk/gnue-appserver/src/geasSessionManager.py
trunk/gnue-appserver/src/language/Object.py
Log:
Removed tons of hacks that are no longer necessary now that the RPC interface
can handle native Python types.
Modified: trunk/gnue-appserver/src/geasSessionManager.py
===================================================================
--- trunk/gnue-appserver/src/geasSessionManager.py 2004-03-19 17:09:23 UTC
(rev 5379)
+++ trunk/gnue-appserver/src/geasSessionManager.py 2004-03-19 18:30:52 UTC
(rev 5380)
@@ -58,35 +58,6 @@
self._langRuntimes = {}
# ---------------------------------------------------------------------------
- # Convert a utf-8 string (from rpc interface) to unicode
- # ---------------------------------------------------------------------------
-
- def __uconvert (self, value):
- # FIXME: This should be done in the RPC server adapter
- if type (value) == ListType:
- return [self.__uconvert (x) for x in value]
- elif type (value) == StringType:
- return unicode (value, 'utf-8')
- elif type (value) == TupleType:
- (x, y) = value
- return (self.__uconvert (x), self.__uconvert (y))
- else:
- return value
-
- # ---------------------------------------------------------------------------
- # Convert a unicode string (from rpc interface) to utf-8
- # ---------------------------------------------------------------------------
-
- def __sconvert (self, value):
- # FIXME: This should be done in the RPC server adapter
- if type (value) == ListType:
- return [self.__sconvert (x) for x in value]
- elif type (value) == UnicodeType:
- return value.encode ('utf-8')
- else:
- return value
-
- # ---------------------------------------------------------------------------
# Build an internal session
# ---------------------------------------------------------------------------
@@ -115,6 +86,7 @@
# ---------------------------------------------------------------------------
def open (self, authentication):
+
# TODO use a better session ID than this one
self._sessNo = self._sessNo + 1
@@ -138,6 +110,7 @@
# ---------------------------------------------------------------------------
def close (self, session_id, commit):
+
s = self._getSession (session_id)
if commit:
s.commit ()
@@ -149,6 +122,7 @@
# ---------------------------------------------------------------------------
def commit (self, session_id):
+
s = self._getSession (session_id)
s.commit ()
@@ -157,6 +131,7 @@
# ---------------------------------------------------------------------------
def rollback (self, session_id):
+
s = self._getSession (session_id)
s.rollback ()
@@ -166,19 +141,16 @@
def request (self, session_id, classname, conditions, sortorder,
propertylist):
- __classname = self.__uconvert (classname)
- __conditions = self.__uconvert (conditions)
- __sortorder = self.__uconvert (sortorder)
- __propertylist = self.__uconvert (propertylist)
s = self._getSession (session_id)
- return s.request (__classname, __conditions, __sortorder, __propertylist)
+ return s.request (classname, conditions, sortorder, propertylist)
# ---------------------------------------------------------------------------
# Count number of objects in list
# ---------------------------------------------------------------------------
def count (self, session_id, list_id):
+
s = self._getSession (session_id)
return s.count (list_id);
@@ -187,6 +159,7 @@
# ---------------------------------------------------------------------------
def fetch (self, session_id, list_id, start, count, close=0):
+
s = self._getSession (session_id)
return s.fetch (list_id, start, count)
@@ -195,38 +168,27 @@
# ---------------------------------------------------------------------------
def load (self, session_id, classname, obj_id_list, propertylist):
- __classname = self.__uconvert (classname)
- __obj_id_list = self.__uconvert (obj_id_list)
- __propertylist = self.__uconvert (propertylist)
s = self._getSession (session_id)
- return self.__sconvert (s.load (__classname, __obj_id_list,
- __propertylist))
+ return s.load (classname, obj_id_list, propertylist)
# ---------------------------------------------------------------------------
# Store objects
# ---------------------------------------------------------------------------
def store (self, session_id, classname, obj_id_list, propertylist, data):
- __classname = self.__uconvert (classname)
- __obj_id_list = self.__uconvert (obj_id_list)
- __propertylist = self.__uconvert (propertylist)
- # data is converted in geasInstance.putValue
s = self._getSession (session_id)
- return self.__sconvert (s.store (__classname, __obj_id_list,
- __propertylist, data))
+ return s.store (classname, obj_id_list, propertylist, data)
# ---------------------------------------------------------------------------
# Delete objects
# ---------------------------------------------------------------------------
def delete (self, session_id, classname, obj_id_list):
- __classname = self.__uconvert (classname)
- __obj_id_list = self.__uconvert (obj_id_list)
s = self._getSession (session_id)
- s.delete (__classname, __obj_id_list)
+ s.delete (classname, obj_id_list)
# ---------------------------------------------------------------------------
# Call procedure
@@ -234,10 +196,6 @@
def call (self, session_id, classname, obj_id_list, procedurename,
parameters):
- __classname = self.__uconvert (classname)
- __obj_id_list = self.__uconvert (obj_id_list)
- # FIXME: procedurename and parameters must be converted
s = self._getSession (session_id)
- return self.__sconvert (s.call (__classname, __obj_id_list, procedurename,
- parameters))
+ return s.call (classname, obj_id_list, procedurename, parameters)
Modified: trunk/gnue-appserver/src/language/Object.py
===================================================================
--- trunk/gnue-appserver/src/language/Object.py 2004-03-19 17:09:23 UTC (rev
5379)
+++ trunk/gnue-appserver/src/language/Object.py 2004-03-19 18:30:52 UTC (rev
5380)
@@ -21,10 +21,7 @@
#
# $Id$
-import sys
-import types
-import mx.DateTime
-import mx.DateTime.ISO
+import string
from Procedure import Procedure
@@ -88,7 +85,12 @@
res = sm.load (sid, self.__class, [''], [name])
(value, datatype) = (None, res [0][0])
- return self.__rpc_to_native (value, datatype)
+ # Convert reference fields to object references
+ if string.split (datatype, '(', 1) [0] in \
+ ['id', 'string', 'number', 'date', 'time', 'datetime', 'boolean']:
+ return value
+ else:
+ return Object (self.__session, datatype, value)
else:
raise MemberNotFoundError (self.__class, name)
@@ -106,9 +108,8 @@
sm = self.__session.getSessionManager ()
sid = self.__session.getSessionId ()
- res = sm.store (sid, self.__class, [self.objectId], [name],
- [[self.__native_to_rpc (value)]])
- self.objectId = self.__rpc_to_native (res [0], 'id')
+ res = sm.store (sid, self.__class, [self.objectId], [name], [[value]])
+ self.objectId = res [0]
else:
raise AttributeError, attr
@@ -148,59 +149,6 @@
# -------------------------------------------------------------------------
- # Get an apropriate default value for type
- # -------------------------------------------------------------------------
- def __defaultValue (self, datetype):
- # NOTE: we assume None to be default value for all types
- return None
-
-
- # -------------------------------------------------------------------------
- # Convert RPC transportable type into native python object
- # -------------------------------------------------------------------------
- def __rpc_to_native (self, value, datatype):
- # Empty strings indicate a default value
- if value == '':
- return self.__defaultValue (datatype)
-
- # String: convert to unicode
- elif datatype [:6] == 'string' or datatype == 'id':
- return unicode (value, 'utf-8')
-
- # Date: convert to mx.DateTime object
- elif datatype == 'date':
- return mx.DateTime.ISO.ParseDate (value)
-
- # Time: convert to mx.DateTime object
- elif datatype == 'time':
- return mx.DateTime.ISO.ParseTime (value)
-
- # DateTime: convert to mx.DateTime object
- elif datatype == 'datetime':
- return mx.DateTime.ISO.ParseDateTime (value)
-
- # number and boolean: no need to convert
- elif datatype == 'boolean' or datatype [:6] == 'number':
- return value
-
- # All others (should be reference-type)
- else:
- return Object (self.__session, datatype, value)
-
-
- # -------------------------------------------------------------------------
- # Convert native Python object into RPC transportable datatype
- # -------------------------------------------------------------------------
- def __native_to_rpc (self, value):
- if value is None:
- return ''
- elif isinstance (value, types.UnicodeType):
- return value.encode ('utf-8')
- else:
- return str (value)
-
-
- # -------------------------------------------------------------------------
# Delete instance and clear object-id
# -------------------------------------------------------------------------
def delete (self):
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- r5380 - in trunk/gnue-appserver/src: . language,
reinhard <=