Search in sources :

Example 1 with FunctionTable

use of org.apache.xpath.compiler.FunctionTable 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;
    }
}
Also used : ExtensionsProvider(org.apache.xpath.ExtensionsProvider) FunctionTable(org.apache.xpath.compiler.FunctionTable)

Example 2 with FunctionTable

use of org.apache.xpath.compiler.FunctionTable 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;
    }
}
Also used : ExtensionsProvider(org.apache.xpath.ExtensionsProvider) FunctionTable(org.apache.xpath.compiler.FunctionTable)

Aggregations

ExtensionsProvider (org.apache.xpath.ExtensionsProvider)2 FunctionTable (org.apache.xpath.compiler.FunctionTable)2