[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r8420 - in trunk/gnue-common/src/logic: . adapters,
reinhard <=