use of org.apache.xpath.ExtensionsProvider in project robovm by robovm.
the class FuncExtFunctionAvailable method execute.
/**
* Execute the function. The function must return
* a valid object.
* @param xctxt The current execution context.
* @return A valid XObject.
*
* @throws javax.xml.transform.TransformerException
*/
public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException {
String prefix;
String namespace;
String methName;
String fullName = m_arg0.execute(xctxt).str();
int indexOfNSSep = fullName.indexOf(':');
if (indexOfNSSep < 0) {
prefix = "";
namespace = Constants.S_XSLNAMESPACEURL;
methName = fullName;
} else {
prefix = fullName.substring(0, indexOfNSSep);
namespace = xctxt.getNamespaceContext().getNamespaceForPrefix(prefix);
if (null == namespace)
return XBoolean.S_FALSE;
methName = fullName.substring(indexOfNSSep + 1);
}
if (namespace.equals(Constants.S_XSLNAMESPACEURL)) {
try {
if (null == m_functionTable)
m_functionTable = new FunctionTable();
return m_functionTable.functionAvailable(methName) ? XBoolean.S_TRUE : XBoolean.S_FALSE;
} catch (Exception e) {
return XBoolean.S_FALSE;
}
} else {
//dml
ExtensionsProvider extProvider = (ExtensionsProvider) xctxt.getOwnerObject();
return extProvider.functionAvailable(namespace, methName) ? XBoolean.S_TRUE : XBoolean.S_FALSE;
}
}
use of org.apache.xpath.ExtensionsProvider in project j2objc by google.
the class FuncExtFunction method execute.
/**
* Execute the function. The function must return
* a valid object.
* @param xctxt The current execution context.
* @return A valid XObject.
*
* @throws javax.xml.transform.TransformerException
*/
public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException {
if (xctxt.isSecureProcessing())
throw new javax.xml.transform.TransformerException(XPATHMessages.createXPATHMessage(XPATHErrorResources.ER_EXTENSION_FUNCTION_CANNOT_BE_INVOKED, new Object[] { toString() }));
XObject result;
Vector argVec = new Vector();
int nArgs = m_argVec.size();
for (int i = 0; i < nArgs; i++) {
Expression arg = (Expression) m_argVec.elementAt(i);
XObject xobj = arg.execute(xctxt);
/*
* Should cache the arguments for func:function
*/
xobj.allowDetachToRelease(false);
argVec.addElement(xobj);
}
//dml
ExtensionsProvider extProvider = (ExtensionsProvider) xctxt.getOwnerObject();
Object val = extProvider.extFunction(this, argVec);
if (null != val) {
result = XObject.create(val, xctxt);
} else {
result = new XNull();
}
return result;
}
use of org.apache.xpath.ExtensionsProvider in project j2objc by google.
the class FuncExtFunctionAvailable method execute.
/**
* Execute the function. The function must return
* a valid object.
* @param xctxt The current execution context.
* @return A valid XObject.
*
* @throws javax.xml.transform.TransformerException
*/
public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException {
String prefix;
String namespace;
String methName;
String fullName = m_arg0.execute(xctxt).str();
int indexOfNSSep = fullName.indexOf(':');
if (indexOfNSSep < 0) {
prefix = "";
namespace = Constants.S_XSLNAMESPACEURL;
methName = fullName;
} else {
prefix = fullName.substring(0, indexOfNSSep);
namespace = xctxt.getNamespaceContext().getNamespaceForPrefix(prefix);
if (null == namespace)
return XBoolean.S_FALSE;
methName = fullName.substring(indexOfNSSep + 1);
}
if (namespace.equals(Constants.S_XSLNAMESPACEURL)) {
try {
if (null == m_functionTable)
m_functionTable = new FunctionTable();
return m_functionTable.functionAvailable(methName) ? XBoolean.S_TRUE : XBoolean.S_FALSE;
} catch (Exception e) {
return XBoolean.S_FALSE;
}
} else {
//dml
ExtensionsProvider extProvider = (ExtensionsProvider) xctxt.getOwnerObject();
return extProvider.functionAvailable(namespace, methName) ? XBoolean.S_TRUE : XBoolean.S_FALSE;
}
}
use of org.apache.xpath.ExtensionsProvider in project j2objc by google.
the class FuncExtElementAvailable method execute.
/**
* Execute the function. The function must return
* a valid object.
* @param xctxt The current execution context.
* @return A valid XObject.
*
* @throws javax.xml.transform.TransformerException
*/
public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException {
String prefix;
String namespace;
String methName;
String fullName = m_arg0.execute(xctxt).str();
int indexOfNSSep = fullName.indexOf(':');
if (indexOfNSSep < 0) {
prefix = "";
namespace = Constants.S_XSLNAMESPACEURL;
methName = fullName;
} else {
prefix = fullName.substring(0, indexOfNSSep);
namespace = xctxt.getNamespaceContext().getNamespaceForPrefix(prefix);
if (null == namespace)
return XBoolean.S_FALSE;
methName = fullName.substring(indexOfNSSep + 1);
}
if (namespace.equals(Constants.S_XSLNAMESPACEURL) || namespace.equals(Constants.S_BUILTIN_EXTENSIONS_URL)) {
try {
TransformerImpl transformer = (TransformerImpl) xctxt.getOwnerObject();
return transformer.getStylesheet().getAvailableElements().containsKey(new QName(namespace, methName)) ? XBoolean.S_TRUE : XBoolean.S_FALSE;
} catch (Exception e) {
return XBoolean.S_FALSE;
}
} else {
//dml
ExtensionsProvider extProvider = (ExtensionsProvider) xctxt.getOwnerObject();
return extProvider.elementAvailable(namespace, methName) ? XBoolean.S_TRUE : XBoolean.S_FALSE;
}
}
use of org.apache.xpath.ExtensionsProvider in project robovm by robovm.
the class FuncExtElementAvailable method execute.
/**
* Execute the function. The function must return
* a valid object.
* @param xctxt The current execution context.
* @return A valid XObject.
*
* @throws javax.xml.transform.TransformerException
*/
public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException {
String prefix;
String namespace;
String methName;
String fullName = m_arg0.execute(xctxt).str();
int indexOfNSSep = fullName.indexOf(':');
if (indexOfNSSep < 0) {
prefix = "";
namespace = Constants.S_XSLNAMESPACEURL;
methName = fullName;
} else {
prefix = fullName.substring(0, indexOfNSSep);
namespace = xctxt.getNamespaceContext().getNamespaceForPrefix(prefix);
if (null == namespace)
return XBoolean.S_FALSE;
methName = fullName.substring(indexOfNSSep + 1);
}
if (namespace.equals(Constants.S_XSLNAMESPACEURL) || namespace.equals(Constants.S_BUILTIN_EXTENSIONS_URL)) {
try {
TransformerImpl transformer = (TransformerImpl) xctxt.getOwnerObject();
return transformer.getStylesheet().getAvailableElements().containsKey(new QName(namespace, methName)) ? XBoolean.S_TRUE : XBoolean.S_FALSE;
} catch (Exception e) {
return XBoolean.S_FALSE;
}
} else {
//dml
ExtensionsProvider extProvider = (ExtensionsProvider) xctxt.getOwnerObject();
return extProvider.elementAvailable(namespace, methName) ? XBoolean.S_TRUE : XBoolean.S_FALSE;
}
}
Aggregations