You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by mo...@apache.org on 2001/10/26 12:11:12 UTC
cvs commit: xml-xalan/java/src/org/apache/xalan/xsltc/compiler FunctionCall.java
morten 01/10/26 03:11:12
Modified: java/src/org/apache/xalan/xsltc/compiler FunctionCall.java
Log:
Changed our extension for calling external static Java methods to allow
both the "http://xml.apache.org/xalan/xsltc/java" namespace and the
"http://xml.apache.org/xslt/java" namespace (Xalan's namespace for Java
function calls).
PR: bugzilla 3994
Obtained from: n/a
Submitted by: after numerous requests/suggestions on xalan-dev
Reviewed by: morten@xml.apache.org
Revision Changes Path
1.9 +19 -11 xml-xalan/java/src/org/apache/xalan/xsltc/compiler/FunctionCall.java
Index: FunctionCall.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/FunctionCall.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- FunctionCall.java 2001/08/27 09:07:19 1.8
+++ FunctionCall.java 2001/10/26 10:11:11 1.9
@@ -1,5 +1,5 @@
/*
- * @(#)$Id: FunctionCall.java,v 1.8 2001/08/27 09:07:19 morten Exp $
+ * @(#)$Id: FunctionCall.java,v 1.9 2001/10/26 10:11:11 morten Exp $
*
* The Apache Software License, Version 1.1
*
@@ -75,12 +75,19 @@
class FunctionCall extends Expression {
- private final static Vector _emptyArgs = new Vector(0);
- private final static String _javaExtPrefix = TRANSLET_URI + "/java";
-
+ // Name of this function call
private QName _fname;
+ // Arguments to this function call (might not be any)
private final Vector _arguments;
-
+ // Empty argument list, used for certain functions
+ private final static Vector EMPTY_ARG_LIST = new Vector(0);
+
+ // Valid namespaces for Java function-call extension
+ private final static String JAVA_EXT_PREFIX = TRANSLET_URI + "/java";
+ private final static String JAVA_EXT_XALAN =
+ "http://xml.apache.org/xslt/java";
+
+ // External Java function's class/method/signature
private String _className;
private Method _chosenMethod;
private MethodType _chosenMethodType;
@@ -154,7 +161,6 @@
}
catch (ClassNotFoundException e) {
System.err.println(e);
- //System.exit(1);
}
}
@@ -164,7 +170,7 @@
}
public FunctionCall(QName fname) {
- this(fname, _emptyArgs);
+ this(fname, EMPTY_ARG_LIST);
}
public String getName() {
@@ -198,14 +204,15 @@
}
// Handle extension functions (they all have a namespace)
else {
- final int len = _javaExtPrefix.length();
- if (namespace.equals(_javaExtPrefix)) {
+ final int len = JAVA_EXT_PREFIX.length();
+ if (namespace.equals(JAVA_EXT_PREFIX) ||
+ namespace.equals(JAVA_EXT_XALAN)) {
final int pos = local.indexOf('.');
_className = local.substring(0, pos);
_fname = new QName(namespace, null, local.substring(pos+1));
}
else if (namespace.length() >= len &&
- namespace.substring(0, len).equals(_javaExtPrefix)) {
+ namespace.substring(0, len).equals(JAVA_EXT_PREFIX)) {
_className = namespace.substring(len + 1);
}
else {
@@ -479,7 +486,8 @@
Vector result = null;
final String namespace = _fname.getNamespace();
- if (namespace.startsWith(_javaExtPrefix)) {
+ if (namespace.startsWith(JAVA_EXT_PREFIX) ||
+ namespace.startsWith(JAVA_EXT_XALAN)) {
final int nArgs = _arguments.size();
try {
final Class clazz = Class.forName(_className);
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org