return new ExpressionParserException(msgRef);
}
public static ExpressionParserException createMETHOD_WRONG_ARG_COUNT(final MethodExpressionImpl methodExpression,
final Token token, final String expression) {
MessageReference msgRef = null;
int minParam = methodExpression.getMethodInfo().getMinParameter();
int maxParam = methodExpression.getMethodInfo().getMaxParameter();
if ((minParam == -1) && (maxParam == -1)) {
// no exception thrown in this case
} else if ((minParam != -1) && (maxParam == -1)) {
// Tested with TestParserExceptions.TestPMreadParameters CASE 7-1
msgRef = ExpressionParserException.METHOD_WRONG_ARG_X_OR_MORE.create();
msgRef.addContent(methodExpression.getMethod().toUriLiteral());
msgRef.addContent(token.getPosition() + 1);
msgRef.addContent(expression);
msgRef.addContent(minParam);
} else if ((minParam == -1) && (maxParam != -1)) {
// Tested with TestParserExceptions.TestPMreadParameters CASE 8-2
msgRef = ExpressionParserException.METHOD_WRONG_ARG_X_OR_LESS.create();
msgRef.addContent(methodExpression.getMethod().toUriLiteral());
msgRef.addContent(token.getPosition() + 1);
msgRef.addContent(expression);
msgRef.addContent(maxParam);
} else if ((minParam != -1) && (maxParam != -1)) {
if (minParam == maxParam) {
// Tested with TestParserExceptions.TestPMreadParameters CASE 11-1
msgRef = ExpressionParserException.METHOD_WRONG_ARG_EXACT.create();
msgRef.addContent(methodExpression.getMethod().toUriLiteral());
msgRef.addContent(token.getPosition() + 1);
msgRef.addContent(expression);
msgRef.addContent(minParam);
} else {
// Tested with TestParserExceptions.TestPMreadParameters CASE 10-1
msgRef = ExpressionParserException.METHOD_WRONG_ARG_BETWEEN.create();
msgRef.addContent(methodExpression.getMethod().toUriLiteral());
msgRef.addContent(token.getPosition() + 1);
msgRef.addContent(expression);
msgRef.addContent(minParam);
msgRef.addContent(maxParam);
}
}
return new ExpressionParserException(msgRef);
}