--- /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 $'
+! !