Parameter (XPathExpression[] argumentList, XPathExpression expr, Parameter[] parameters) { for (int i = 0; i < argumentList.length; i++) { XPathExpression arg = argumentList[i]; if (arg == expr) { if (i < parameters.length) { return parameters[i]; } else if (parameters.length > 0) { final Parameter last = parameters[parameters.length - 1]; if (last.kind == Parameter.Kind.VARARG) { return last; } } } } return null; }