[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnue] r8418 - trunk/gnue-common/src/logic
From: |
reinhard |
Subject: |
[gnue] r8418 - trunk/gnue-common/src/logic |
Date: |
Tue, 18 Apr 2006 16:04:18 -0500 (CDT) |
Author: reinhard
Date: 2006-04-18 16:04:18 -0500 (Tue, 18 Apr 2006)
New Revision: 8418
Modified:
trunk/gnue-common/src/logic/GTrigger.py
Log:
Moved GTrigger to use new language adapter interface.
Modified: trunk/gnue-common/src/logic/GTrigger.py
===================================================================
--- trunk/gnue-common/src/logic/GTrigger.py 2006-04-18 20:47:44 UTC (rev
8417)
+++ trunk/gnue-common/src/logic/GTrigger.py 2006-04-18 21:04:18 UTC (rev
8418)
@@ -37,9 +37,9 @@
from gnue.common.formatting import GTypecast
from xml.sax import saxutils
from gnue.common.definitions.GParserHelpers import GContent
-from gnue.common.logic.language import getLanguageAdapter, RuntimeError
-from gnue.common.logic.language import AbortRequest
+from gnue.common.logic import language
+
# class TriggerError(StandardError):
# pass
#
@@ -74,7 +74,6 @@
GObj.__init__(self, parent, 'GCTrigger')
- self._text=''
self._triggerns={}
self._inits = [None,self.initialize,self.initCall]
@@ -113,8 +112,9 @@
# 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
if self.src is None:
- self.setFunction (self.getChildrenAsContent (), self.language)
+ self.__set_function(self.getChildrenAsContent())
+
# ---------------------------------------------------------------------------
# Initialize the trigger's call function
# ---------------------------------------------------------------------------
@@ -126,32 +126,20 @@
"""
if self.src is not None:
- self.setFunctionFrom (self._root._triggerDictionary [self.src])
+ self.__set_function_from(self._root._triggerDictionary [self.src])
- def setFunctionFrom(self, object):
+ def __set_function_from(self, object):
self.__call__ = object.__call__
- def setFunction(self, text, language):
- global runtime_list
- self._text = text
- self.language = language
+ def __set_function(self, code):
- engine = getLanguageAdapter (self.language)
- cx = engine.createNewContext ()
-
- # define global namespace ('global' directive in python)
- cx.defineNamespace (self._globalns, asGlobal = True)
-
- # define local trigger namespace
- cx.defineNamespace (self._triggerns)
-
# build a name for the execution context which will be helpful if displayed
# in error messages
if self.type == 'NAMED':
- cx.shortname = "Named trigger %s" % self.name
+ execution_context_name = "Named trigger %s" % self.name
else:
path = ""
p = self
@@ -169,15 +157,26 @@
p = None
else:
p = p.getParent()
- cx.shortname = path
+ execution_context_name = path
+ # Build a name for the function
if self.name:
- functionname = self.name
+ function_name = self.name
else:
- functionname = self.type.upper()
+ function_name = self.type.upper()
- self.__call__ = cx.buildFunction (functionname, self._text)
+ execution_context = language.create_execution_context(
+ language = self.language,
+ name = execution_context_name,
+ local_namespace = self._triggerns,
+ global_namespace = self._globalns,
+ builtin_namespace = {})
+ self.__call__ = execution_context.build_function(
+ name = function_name,
+ parameters = [],
+ code = code)
+
def dummyFunction(self, myself):
assert gDebug(1, "Trigger not implemented")
@@ -323,7 +322,7 @@
# function.updateNamespace()
try:
return function(self)
- except AbortRequest:
+ except language.AbortRequest:
if not ignoreAbort:
raise
else:
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r8418 - trunk/gnue-common/src/logic,
reinhard <=