commit-gnue
[Top][All Lists]
Advanced

[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):





reply via email to

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