private static org.apache.olingo.server.api.uri.queryoption.expression.Expression getKeyPredicateExpression( UriParameter key, OData odata, Column column) { org.apache.olingo.server.api.uri.queryoption.expression.Expression expr = key.getExpression(); if ( expr == null) { EdmPrimitiveTypeKind primitiveTypeKind = ODataTypeManager.odataType(column); expr = new LiteralImpl(key.getText(), odata.createPrimitiveTypeInstance(primitiveTypeKind)); } return expr; }
protected static void validateFunctionParameters(final EdmFunction function, final List<UriParameter> parameters, final Edm edm, final EdmType referringType, final Map<String, AliasQueryOption> aliases) throws UriParserException, UriValidationException { for (final UriParameter parameter : parameters) { final String parameterName = parameter.getName(); final EdmParameter edmParameter = function.getParameter(parameterName); final boolean isNullable = edmParameter.isNullable(); if (parameter.getText() == null && parameter.getExpression() == null && !isNullable) { if (parameter.getAlias() == null) { // No alias, value is explicitly null. throw new UriValidationException("Missing non-nullable parameter " + parameterName, UriValidationException.MessageKeys.MISSING_PARAMETER, parameterName); } else { final String valueForAlias = aliases.containsKey(parameter.getAlias()) ? parseAliasValue(parameter.getAlias(), edmParameter.getType(), edmParameter.isNullable(), edmParameter.isCollection(), edm, referringType, aliases).getText() : null; // Alias value is missing or explicitly null. if (valueForAlias == null) { throw new UriValidationException("Missing alias for " + parameterName, UriValidationException.MessageKeys.MISSING_ALIAS, parameter.getAlias()); } } } } }
} else { try { jpaParameter[i] = (Expression<?>) p.getExpression().accept(visitor).get(); } catch (ExpressionVisitException e) { throw new ODataJPAFilterException(e, HttpStatusCode.NOT_IMPLEMENTED);
protected static void validateFunctionParameters(final EdmFunction function, final List<UriParameter> parameters, final Edm edm, final EdmType referringType, final Map<String, AliasQueryOption> aliases) throws UriParserException, UriValidationException { for (final UriParameter parameter : parameters) { final String parameterName = parameter.getName(); final EdmParameter edmParameter = function.getParameter(parameterName); final boolean isNullable = edmParameter.isNullable(); if (parameter.getText() == null && parameter.getExpression() == null && !isNullable) { if (parameter.getAlias() == null) { // No alias, value is explicitly null. throw new UriValidationException("Missing non-nullable parameter " + parameterName, UriValidationException.MessageKeys.MISSING_PARAMETER, parameterName); } else { final String valueForAlias = aliases.containsKey(parameter.getAlias()) ? parseAliasValue(parameter.getAlias(), edmParameter.getType(), edmParameter.isNullable(), edmParameter.isCollection(), edm, referringType, aliases).getText() : null; // Alias value is missing or explicitly null. if (valueForAlias == null) { throw new UriValidationException("Missing alias for " + parameterName, UriValidationException.MessageKeys.MISSING_ALIAS, parameter.getAlias()); } } } } }