commit-gnue
[Top][All Lists]
Advanced

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

[gnue] r8420 - in trunk/gnue-common/src/logic: . adapters


From: reinhard
Subject: [gnue] r8420 - in trunk/gnue-common/src/logic: . adapters
Date: Tue, 18 Apr 2006 18:25:17 -0500 (CDT)

Author: reinhard
Date: 2006-04-18 18:25:16 -0500 (Tue, 18 Apr 2006)
New Revision: 8420

Modified:
   trunk/gnue-common/src/logic/GTrigger.py
   trunk/gnue-common/src/logic/adapters/python.py
Log:
Added support for "self" parameter for triggers.

Issue75 testing


Modified: trunk/gnue-common/src/logic/GTrigger.py
===================================================================
--- trunk/gnue-common/src/logic/GTrigger.py     2006-04-18 21:42:10 UTC (rev 
8419)
+++ trunk/gnue-common/src/logic/GTrigger.py     2006-04-18 23:25:16 UTC (rev 
8420)
@@ -99,15 +99,13 @@
     self._root = self.findParentOfType(None)
     self._triggerns.update( self._root._triggerns )
     self._globalns = self._root._globalRuntimeNamespace
-    self.__call__ = self.dummyFunction
+    self.__call__ = dummyFunction
 
     if self.type != "NAMED":
       if self.getParent ():
         self.getParent ().associateTrigger (self.type, self)
-        self._triggerns.update (self.getParent ()._localTriggerNamespace)
     else:
       self._root._triggerDictionary[self.name] = self
-      self._triggerns.update(self._root._localTriggerNamespace)
 
     # If the trigger code is given with the trigger, build the call-function
     # right now. This way any referring trigger will find a propery function
@@ -174,12 +172,9 @@
 
     self.__call__ = execution_context.build_function(
             name = function_name,
-            parameters = [],
+            parameters = ['self'],
             code = code)
 
-  def dummyFunction(self, myself):
-    assert gDebug(1, "Trigger not implemented")
-
   def getDescription(self):
     """
     Return a useful description of this object
@@ -269,9 +264,16 @@
     return xmlString
 
 
+# -----------------------------------------------------------------------------
+# Dummy function for non-implemented triggers
+# -----------------------------------------------------------------------------
 
+def dummyFunction(self):
+    assert gDebug(1, "Trigger not implemented")
 
 
+
+
 #######################################################################
 #
 # Trigger processor classes
@@ -283,9 +285,8 @@
   """
   def __init__(self):
     self._trigger = {}
+    self._validTriggers = {}
 
-    #self._validTriggers = validTriggers
-
   def associateTrigger(self, key, function):
     """
     Associates a trigger with the object.  More than one trigger of a specific 
type
@@ -321,7 +322,7 @@
           # TODO: do we need to call "updateNamespace" here?
           #   function.updateNamespace()
           try:
-            return function(self)
+            return function(__self = self.namespace_object)
           except language.AbortRequest:
             if not ignoreAbort:
               raise

Modified: trunk/gnue-common/src/logic/adapters/python.py
===================================================================
--- trunk/gnue-common/src/logic/adapters/python.py      2006-04-18 21:42:10 UTC 
(rev 8419)
+++ trunk/gnue-common/src/logic/adapters/python.py      2006-04-18 23:25:16 UTC 
(rev 8420)
@@ -242,8 +242,14 @@
         executes the code.
         """
 
-        self.__local_namespace['__parameters'] = params
+        # Change '__self' parameter to 'self'
+        parameters = params.copy()
+        if parameters.has_key('__self'):
+            parameters['self'] = parameters['__self']
+            del parameters['__self']
 
+        self.__local_namespace['__parameters'] = parameters
+
         try:
             exec self.__compiled_code \
                     in self.__global_namespace, self.__local_namespace





reply via email to

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