protected void validateMethodTypes(final MethodExpression methodExpression, final Token methodToken) throws ExpressionParserException, ExpressionParserInternalError { InfoMethod methOpt = availableMethods.get(methodExpression.getUriLiteral()); List<EdmType> actualParameterTypes = new ArrayList<EdmType>(); // If there are no parameter then don't perform a type check if (methodExpression.getParameters().isEmpty()) { return; } for (CommonExpression parameter : methodExpression.getParameters()) { // If there is not at parsing time its not possible to determine the type of eg myPropertyName. // Since this should not cause validation errors null type node arguments are leading to bypass // the validation if (parameter.getEdmType() == null && resourceEntityType == null) { return; } actualParameterTypes.add(parameter.getEdmType()); } ParameterSet parameterSet = methOpt.validateParameterSet(actualParameterTypes); // If there is not returntype then the input parameter if (parameterSet == null) { // Tested with TestParserExceptions.testPMvalidateMethodTypes CASE 1 throw FilterParserExceptionImpl.createMETHOD_WRONG_INPUT_TYPE((MethodExpressionImpl) methodExpression, methodToken, curExpression); } methodExpression.setEdmType(parameterSet.getReturnType()); }
} else if (kind == ExpressionKind.METHOD) { final MethodExpression methodExpression = (MethodExpression) expression; if (methodExpression.getParameterCount() > 0) { writer.append("<ol class=\"expr\">"); for (final CommonExpression parameter : methodExpression.getParameters()) { writer.append("<li>"); appendExpression(parameter, writer);
final String first = evaluateExpression(data, methodExpression.getParameters().get(0)); final String second = methodExpression.getParameterCount() > 1 ? evaluateExpression(data, methodExpression.getParameters().get(1)) : null; final String third = methodExpression.getParameterCount() > 2 ? evaluateExpression(data, methodExpression.getParameters().get(2)) : null; switch (methodExpression.getMethod()) { case ENDSWITH: return Boolean.toString(first.endsWith(second));
@Override public Object visitMethod(final MethodExpression methodExpression, final MethodOperator method, final List<Object> parameters) { try { StringWriter writer = new StringWriter(); JsonStreamWriter jsonStreamWriter = new JsonStreamWriter(writer); jsonStreamWriter.beginObject().namedStringValueRaw("nodeType", methodExpression.getKind().toString()).separator() .namedStringValueRaw("operator", method.toUriLiteral()).separator().namedStringValueRaw("type", getType(methodExpression)).separator().name("parameters").beginArray(); boolean first = true; for (Object parameter : parameters) { if (first) { first = false; } else { jsonStreamWriter.separator(); } jsonStreamWriter.unquotedValue(parameter.toString()); } jsonStreamWriter.endArray().endObject(); writer.flush(); return writer.toString(); } catch (final IOException e) { return null; } }
final String first = evaluateExpression(data, methodExpression.getParameters().get(0)); final String second = methodExpression.getParameterCount() > 1 ? evaluateExpression(data, methodExpression.getParameters().get(1)) : ""; final String third = methodExpression.getParameterCount() > 2 ? evaluateExpression(data, methodExpression.getParameters().get(2)) : ""; switch (methodExpression.getMethod()) { case ENDSWITH: return Boolean.toString(first.endsWith(second));
@Override public Object visitMethod(final MethodExpression methodExpression, final MethodOperator method, final List<Object> parameters) { try { StringWriter writer = new StringWriter(); JsonStreamWriter jsonStreamWriter = new JsonStreamWriter(writer); jsonStreamWriter.beginObject().namedStringValueRaw("nodeType", methodExpression.getKind().toString()).separator() .namedStringValueRaw("operator", method.toUriLiteral()).separator().namedStringValueRaw("type", getType(methodExpression)).separator().name("parameters").beginArray(); boolean first = true; for (Object parameter : parameters) { if (first) { first = false; } else { jsonStreamWriter.separator(); } jsonStreamWriter.unquotedValue(parameter.toString()); } jsonStreamWriter.endArray().endObject(); writer.flush(); return writer.toString(); } catch (final IOException e) { return null; } }
final String first = evaluateExpression(data, methodExpression.getParameters().get(0)); final String second = methodExpression.getParameterCount() > 1 ? evaluateExpression(data, methodExpression.getParameters().get(1)) : ""; final String third = methodExpression.getParameterCount() > 2 ? evaluateExpression(data, methodExpression.getParameters().get(2)) : ""; switch (methodExpression.getMethod()) { case ENDSWITH: return Boolean.toString(first.endsWith(second));
protected void validateMethodTypes(final MethodExpression methodExpression, final Token methodToken) throws ExpressionParserException, ExpressionParserInternalError { InfoMethod methOpt = availableMethods.get(methodExpression.getUriLiteral()); List<EdmType> actualParameterTypes = new ArrayList<EdmType>(); // If there are no parameter then don't perform a type check if (methodExpression.getParameters().size() == 0) { return; } for (CommonExpression parameter : methodExpression.getParameters()) { // If there is not at parsing time its not possible to determine the type of eg myPropertyName. // Since this should not cause validation errors null type node arguments are leading to bypass // the validation if ((parameter.getEdmType() == null) && (resourceEntityType == null)) { return; } actualParameterTypes.add(parameter.getEdmType()); } ParameterSet parameterSet = methOpt.validateParameterSet(actualParameterTypes); // If there is not returntype then the input parameter if (parameterSet == null) { // Tested with TestParserExceptions.testPMvalidateMethodTypes CASE 1 throw FilterParserExceptionImpl.createMETHOD_WRONG_INPUT_TYPE((MethodExpressionImpl) methodExpression, methodToken, curExpression); } methodExpression.setEdmType(parameterSet.getReturnType()); }
} else if (kind == ExpressionKind.METHOD) { final MethodExpression methodExpression = (MethodExpression) expression; if (methodExpression.getParameterCount() > 0) { writer.append("<ol class=\"expr\">"); for (final CommonExpression parameter : methodExpression.getParameters()) { writer.append("<li>"); appendExpression(parameter, writer);
@Override public Object visitMethod(final MethodExpression methodExpression, final MethodOperator method, final List<Object> parameters) { try { StringWriter writer = new StringWriter(); JsonStreamWriter jsonStreamWriter = new JsonStreamWriter(writer); jsonStreamWriter.beginObject().namedStringValueRaw("nodeType", methodExpression.getKind().toString()).separator() .namedStringValueRaw("operator", method.toUriLiteral()).separator().namedStringValueRaw("type", getType(methodExpression)).separator().name("parameters").beginArray(); boolean first = true; for (Object parameter : parameters) { if (first) { first = false; } else { jsonStreamWriter.separator(); } jsonStreamWriter.unquotedValue(parameter.toString()); } jsonStreamWriter.endArray().endObject(); writer.flush(); return writer.toString(); } catch (final IOException e) { return null; } }
MethodOperator operator = null; if (binaryExpression.getLeftOperand().getKind() == ExpressionKind.METHOD) { operator = ((MethodExpression) binaryExpression.getLeftOperand()).getMethod(); String first = parseToJPAWhereExpression(methodExpression.getParameters().get(0), tableAlias); index.set(index.get()+1); String second = methodExpression.getParameterCount() > 1 ? parseToJPAWhereExpression(methodExpression.getParameters().get(1), tableAlias) : null; index.set(index.get()+1); String third = methodExpression.getParameterCount() > 2 ? parseToJPAWhereExpression(methodExpression.getParameters().get(2), tableAlias) : null; switch (methodExpression.getMethod()) { case SUBSTRING: third = third != null ? ", " + third : "";
protected void validateMethodTypes(final MethodExpression methodExpression, final Token methodToken) throws ExpressionParserException, ExpressionParserInternalError { InfoMethod methOpt = availableMethods.get(methodExpression.getUriLiteral()); List<EdmType> actualParameterTypes = new ArrayList<EdmType>(); // If there are no parameter then don't perform a type check if (methodExpression.getParameters().isEmpty()) { return; } for (CommonExpression parameter : methodExpression.getParameters()) { // If there is not at parsing time its not possible to determine the type of eg myPropertyName. // Since this should not cause validation errors null type node arguments are leading to bypass // the validation if (parameter.getEdmType() == null && resourceEntityType == null) { return; } actualParameterTypes.add(parameter.getEdmType()); } ParameterSet parameterSet = methOpt.validateParameterSet(actualParameterTypes); // If there is not returntype then the input parameter if (parameterSet == null) { // Tested with TestParserExceptions.testPMvalidateMethodTypes CASE 1 throw FilterParserExceptionImpl.createMETHOD_WRONG_INPUT_TYPE((MethodExpressionImpl) methodExpression, methodToken, curExpression); } methodExpression.setEdmType(parameterSet.getReturnType()); }
MethodOperator operator = null; if (binaryExpression.getLeftOperand().getKind() == ExpressionKind.METHOD) { operator = ((MethodExpression) binaryExpression.getLeftOperand()).getMethod(); String first = parseToJPAWhereExpression(methodExpression.getParameters().get(0), tableAlias); index++; String second = methodExpression.getParameterCount() > 1 ? parseToJPAWhereExpression(methodExpression.getParameters().get(1), tableAlias) : null; index++; String third = methodExpression.getParameterCount() > 2 ? parseToJPAWhereExpression(methodExpression.getParameters().get(2), tableAlias) : null; switch (methodExpression.getMethod()) { case SUBSTRING: third = third != null ? ", " + third : "";