use of javax.xml.xpath.XPathFunction in project j2objc by google.
the class JAXPExtensionsProvider method extFunction.
/**
* Execute the extension function.
*/
public Object extFunction(String ns, String funcName, Vector argVec, Object methodKey) throws javax.xml.transform.TransformerException {
try {
if (funcName == null) {
String fmsg = XSLMessages.createXPATHMessage(XPATHErrorResources.ER_ARG_CANNOT_BE_NULL, new Object[] { "Function Name" });
throw new NullPointerException(fmsg);
}
//Find the XPathFunction corresponding to namespace and funcName
javax.xml.namespace.QName myQName = new QName(ns, funcName);
// throw XPathFunctionException
if (extensionInvocationDisabled) {
String fmsg = XSLMessages.createXPATHMessage(XPATHErrorResources.ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED, new Object[] { myQName.toString() });
throw new XPathFunctionException(fmsg);
}
// Assuming user is passing all the needed parameters ( including
// default values )
int arity = argVec.size();
javax.xml.xpath.XPathFunction xpathFunction = resolver.resolveFunction(myQName, arity);
// not using methodKey
ArrayList argList = new ArrayList(arity);
for (int i = 0; i < arity; i++) {
Object argument = argVec.elementAt(i);
// Explicitly getting NodeList by using nodelist()
if (argument instanceof XNodeSet) {
argList.add(i, ((XNodeSet) argument).nodelist());
} else if (argument instanceof XObject) {
Object passedArgument = ((XObject) argument).object();
argList.add(i, passedArgument);
} else {
argList.add(i, argument);
}
}
return (xpathFunction.evaluate(argList));
} catch (XPathFunctionException xfe) {
// further execution by throwing WrappedRuntimeException
throw new org.apache.xml.utils.WrappedRuntimeException(xfe);
} catch (Exception e) {
throw new javax.xml.transform.TransformerException(e);
}
}
use of javax.xml.xpath.XPathFunction in project j2objc by google.
the class JAXPExtensionsProvider method functionAvailable.
/**
* Is the extension function available?
*/
public boolean functionAvailable(String ns, String funcName) throws javax.xml.transform.TransformerException {
try {
if (funcName == null) {
String fmsg = XSLMessages.createXPATHMessage(XPATHErrorResources.ER_ARG_CANNOT_BE_NULL, new Object[] { "Function Name" });
throw new NullPointerException(fmsg);
}
//Find the XPathFunction corresponding to namespace and funcName
javax.xml.namespace.QName myQName = new QName(ns, funcName);
javax.xml.xpath.XPathFunction xpathFunction = resolver.resolveFunction(myQName, 0);
if (xpathFunction == null) {
return false;
}
return true;
} catch (Exception e) {
return false;
}
}
Aggregations