Search in sources :

Example 1 with FuncExtFunction

use of org.apache.xpath.functions.FuncExtFunction in project robovm by robovm.

the class Compiler method compileExtension.

/**
   * Compile an extension function.
   * 
   * @param opPos The current position in the m_opMap array.
   *
   * @return reference to {@link org.apache.xpath.functions.FuncExtFunction} instance.
   *
   * @throws TransformerException if a error occurs creating the Expression.
   */
private Expression compileExtension(int opPos) throws TransformerException {
    int endExtFunc = opPos + getOp(opPos + 1) - 1;
    opPos = getFirstChildPos(opPos);
    java.lang.String ns = (java.lang.String) getTokenQueue().elementAt(getOp(opPos));
    opPos++;
    java.lang.String funcName = (java.lang.String) getTokenQueue().elementAt(getOp(opPos));
    opPos++;
    // We create a method key to uniquely identify this function so that we
    // can cache the object needed to invoke it.  This way, we only pay the
    // reflection overhead on the first call.
    Function extension = new FuncExtFunction(ns, funcName, String.valueOf(getNextMethodId()));
    try {
        int i = 0;
        while (opPos < endExtFunc) {
            int nextOpPos = getNextOpPos(opPos);
            extension.setArg(this.compile(opPos), i);
            opPos = nextOpPos;
            i++;
        }
    } catch (WrongNumberArgsException wnae) {
        // should never happen
        ;
    }
    return extension;
}
Also used : FuncExtFunction(org.apache.xpath.functions.FuncExtFunction) Function(org.apache.xpath.functions.Function) WrongNumberArgsException(org.apache.xpath.functions.WrongNumberArgsException) XString(org.apache.xpath.objects.XString) FuncExtFunction(org.apache.xpath.functions.FuncExtFunction)

Example 2 with FuncExtFunction

use of org.apache.xpath.functions.FuncExtFunction in project j2objc by google.

the class Compiler method compileExtension.

/**
 * Compile an extension function.
 *
 * @param opPos The current position in the m_opMap array.
 *
 * @return reference to {@link org.apache.xpath.functions.FuncExtFunction} instance.
 *
 * @throws TransformerException if a error occurs creating the Expression.
 */
private Expression compileExtension(int opPos) throws TransformerException {
    int endExtFunc = opPos + getOp(opPos + 1) - 1;
    opPos = getFirstChildPos(opPos);
    java.lang.String ns = (java.lang.String) getTokenQueue().elementAt(getOp(opPos));
    opPos++;
    java.lang.String funcName = (java.lang.String) getTokenQueue().elementAt(getOp(opPos));
    opPos++;
    // We create a method key to uniquely identify this function so that we
    // can cache the object needed to invoke it.  This way, we only pay the
    // reflection overhead on the first call.
    Function extension = new FuncExtFunction(ns, funcName, String.valueOf(getNextMethodId()));
    try {
        int i = 0;
        while (opPos < endExtFunc) {
            int nextOpPos = getNextOpPos(opPos);
            extension.setArg(this.compile(opPos), i);
            opPos = nextOpPos;
            i++;
        }
    } catch (WrongNumberArgsException wnae) {
        // should never happen
        ;
    }
    return extension;
}
Also used : FuncExtFunction(org.apache.xpath.functions.FuncExtFunction) Function(org.apache.xpath.functions.Function) WrongNumberArgsException(org.apache.xpath.functions.WrongNumberArgsException) XString(org.apache.xpath.objects.XString) FuncExtFunction(org.apache.xpath.functions.FuncExtFunction)

Aggregations

FuncExtFunction (org.apache.xpath.functions.FuncExtFunction)2 Function (org.apache.xpath.functions.Function)2 WrongNumberArgsException (org.apache.xpath.functions.WrongNumberArgsException)2 XString (org.apache.xpath.objects.XString)2