xquery/trunk/XQuery__ExternalFunction.st
changeset 235 e2a2fac1f45f
child 241 e28ef0f20186
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xquery/trunk/XQuery__ExternalFunction.st	Tue Apr 06 20:48:34 2010 +0000
@@ -0,0 +1,77 @@
+"{ Package: 'stx:goodies/xmlsuite/xquery' }"
+
+"{ NameSpace: XQuery }"
+
+Function subclass:#ExternalFunction
+	instanceVariableNames:'localName functionLibrary'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'XQuery-Functions'
+!
+
+
+!ExternalFunction methodsFor:'accessing'!
+
+functionLibrary
+    ^ functionLibrary
+
+    "Created: / 28-08-2007 / 23:07:47 / janfrog"
+!
+
+javaScriptLocalName: numArgs
+
+    | jsName |
+    jsName := localName copyReplaceAll: $- with: $_.
+    numArgs > 0 ifTrue:[jsName := jsName , ':'].
+    numArgs > 1 ifTrue:[numArgs - 1 timesRepeat:[jsName := jsName , '_:' ]].
+    ^jsName
+
+    "Created: / 17-01-2009 / 14:19:49 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!ExternalFunction methodsFor:'function API'!
+
+evaluateInContext:context withParameters:parameters forInterpreter:interpreter 
+    ^ functionLibrary 
+        performPrimitive: localName
+        inContext:context
+        withArguments:parameters
+        forInterpreter:interpreter
+
+    "Created: / 28-08-2007 / 23:10:46 / janfrog"
+    "Modified: / 20-01-2009 / 09:35:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+localName
+    ^ localName
+
+    "Created: / 28-08-2007 / 23:07:47 / janfrog"
+!
+
+namespaceURI
+    ^ functionLibrary namespaceURI
+
+    "Created: / 28-08-2007 / 23:07:47 / janfrog"
+! !
+
+!ExternalFunction methodsFor:'initialization'!
+
+setFunctionLibrary: aFunctionLibrary
+
+    functionLibrary := aFunctionLibrary
+
+    "Created: / 28-08-2007 / 22:44:00 / janfrog"
+!
+
+setLocalName: name
+
+    localName := name
+
+    "Created: / 28-08-2007 / 23:08:47 / janfrog"
+! !
+
+!ExternalFunction class methodsFor:'documentation'!
+
+version
+    ^ '$Header: /opt/data/cvs/stx/goodies/xmlsuite/xquery/XQuery__LibraryFunction.st,v 1.2 2007-09-21 11:21:48 vranyj1 Exp $'
+! !