|
From: <tim...@us...> - 2011-06-01 16:59:49
|
Revision: 4381
http://mxquery.svn.sourceforge.net/mxquery/?rev=4381&view=rev
Author: timchurch
Date: 2011-06-01 16:59:42 +0000 (Wed, 01 Jun 2011)
Log Message:
-----------
- Allow java objects to be passed as params in native function calls from xquery
- Commented out println for void types on native function calls
Modified Paths:
--------------
trunk/MXQuery/src/ch/ethz/mxquery/functions/NativeFunctionImporter.java
trunk/MXQuery/src/ch/ethz/mxquery/iterators/NativeFuncCall.java
Modified: trunk/MXQuery/src/ch/ethz/mxquery/functions/NativeFunctionImporter.java
===================================================================
--- trunk/MXQuery/src/ch/ethz/mxquery/functions/NativeFunctionImporter.java 2011-06-01 15:44:14 UTC (rev 4380)
+++ trunk/MXQuery/src/ch/ethz/mxquery/functions/NativeFunctionImporter.java 2011-06-01 16:59:42 UTC (rev 4381)
@@ -207,7 +207,7 @@
return new TypeInfo(Type.INT,Type.OCCURRENCE_IND_EXACTLY_ONE);
if (class1.getName().equals("boolean"))
return new TypeInfo(Type.BOOLEAN,Type.OCCURRENCE_IND_EXACTLY_ONE);
- System.out.println(class1.getPackage()+" "+class1.getName());
+ //System.out.println(class1.getPackage()+" "+class1.getName());
return new TypeInfo(Type.UNTYPED_ATOMIC,Type.OCCURRENCE_IND_EXACTLY_ONE);
}
if (class1.getName().equals("java.lang.String"))
Modified: trunk/MXQuery/src/ch/ethz/mxquery/iterators/NativeFuncCall.java
===================================================================
--- trunk/MXQuery/src/ch/ethz/mxquery/iterators/NativeFuncCall.java 2011-06-01 15:44:14 UTC (rev 4380)
+++ trunk/MXQuery/src/ch/ethz/mxquery/iterators/NativeFuncCall.java 2011-06-01 16:59:42 UTC (rev 4381)
@@ -97,9 +97,14 @@
invocationParamsTypes[i] = invocationParams[i].getClass();
break;
case Type.ITEM:
- if (i==0 && tok instanceof WrappedObjectToken) {
+ if (tok instanceof WrappedObjectToken) {
WrappedObjectToken wrap = (WrappedObjectToken) tok;
- instanceToCall = wrap.getWrappedObject();
+ if(i == 0) {
+ instanceToCall = wrap.getWrappedObject();
+ } else {
+ invocationParams[i] = wrap.getWrappedObject();
+ invocationParamsTypes[i] = invocationParams[i].getClass();
+ }
} else
throw new DynamicException(ErrorCodes.A0002_EC_NOT_SUPPORTED, "Type "+Type.getTypeQName(tok.getEventType(), Context.getDictionary())+" not implemented in Java calls", loc);
break;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|