*/
public void endFunction()
throws JaxenException {
super.endFunction();
FunctionCallExpr c = (FunctionCallExpr)peekFrame()
.getLast();
String prefix = c.getPrefix();
// empty string prefix should resolve to xpath namespace, NOT bpel
if ((prefix == null) || "".equals(prefix)) {
return;
}
String ns = _nsContext.getNamespaceURI(prefix);
if (ns == null) {
throw new CompilationException(
__msgs.errUndeclaredFunctionPrefix(prefix,c.getFunctionName()));
} else if (isBpelNamespace(ns)) {
try {
if (Constants.EXT_FUNCTION_GETVARIABLEDATA.equals(c.getFunctionName())) {
compileGetVariableData(c);
} else if (Constants.EXT_FUNCTION_GETVARIABLEPROPRTY.equals(c
.getFunctionName())) {
compileGetVariableProperty(c);
} else if (Constants.EXT_FUNCTION_GETLINKSTATUS.equals(c.getFunctionName())) {
compileGetLinkStatus(c);
} else if (Constants.EXT_FUNCTION_DOXSLTRANSFORM.equals(c.getFunctionName())) {
compileDoXslTransform(c);
} else {
throw new CompilationException(__msgs.errUnknownBpelFunction(c.getFunctionName()));
}
} catch (CompilationException ce) {
throw new CompilationExceptionWrapper(ce);
}
}