@Override public EdmFunction getUnboundFunction(final List<String> parameterNames) { return edm.getUnboundFunction(getFunctionFqn(), parameterNames); }
@Override public EdmFunction getUnboundFunction(final List<String> parameterNames) { return edm.getUnboundFunction(getFunctionFqn(), parameterNames); }
@Override @SuppressWarnings("unchecked") public <RES extends ClientInvokeResult> ODataInvokeRequest<RES> getFunctionImportInvokeRequest( final String functionImportName, final Map<String, ClientValue> parameters) { EdmFunctionImport efi = null; for (EdmSchema schema : edmClient.getCachedEdm().getSchemas()) { final EdmEntityContainer container = schema.getEntityContainer(); if (container != null) { efi = container.getFunctionImport(functionImportName); } } if (efi == null) { throw new IllegalArgumentException("Could not find FunctionImport for name " + functionImportName); } final EdmFunction function = edmClient.getCachedEdm(). getUnboundFunction(efi.getFunctionFqn(), parameters == null ? null : new ArrayList<String>(parameters.keySet())); if (function == null) { throw new IllegalArgumentException("Could not find Function " + efi.getFunctionFqn()); } return (ODataInvokeRequest<RES>) getInvokeRequest(HttpMethod.GET, edmClient.newURIBuilder().appendOperationCallSegment(functionImportName).build(), getResultReference(function.getReturnType()), parameters); }
@Override @SuppressWarnings("unchecked") public <RES extends ClientInvokeResult> ODataInvokeRequest<RES> getFunctionImportInvokeRequest( final String functionImportName, final Map<String, ClientValue> parameters) { EdmFunctionImport efi = null; for (EdmSchema schema : edmClient.getCachedEdm().getSchemas()) { final EdmEntityContainer container = schema.getEntityContainer(); if (container != null) { efi = container.getFunctionImport(functionImportName); } } if (efi == null) { throw new IllegalArgumentException("Could not find FunctionImport for name " + functionImportName); } final EdmFunction function = edmClient.getCachedEdm(). getUnboundFunction(efi.getFunctionFqn(), parameters == null ? null : new ArrayList<String>(parameters.keySet())); if (function == null) { throw new IllegalArgumentException("Could not find Function " + efi.getFunctionFqn()); } return (ODataInvokeRequest<RES>) getInvokeRequest(HttpMethod.GET, edmClient.newURIBuilder().appendOperationCallSegment(functionImportName).build(), getResultReference(function.getReturnType()), parameters); }
private void parseFunction(final FullQualifiedName fullQualifiedName, UriInfoImpl uriInfo, final EdmType lastType, final boolean lastIsCollection) throws UriParserException, UriValidationException { final List<UriParameter> parameters = ParserHelper.parseFunctionParameters(tokenizer, edm, referringType, true, aliases); final List<String> parameterNames = ParserHelper.getParameterNames(parameters); final EdmFunction boundFunction = edm.getBoundFunction(fullQualifiedName, lastType.getFullQualifiedName(), lastIsCollection, parameterNames); if (boundFunction != null) { ParserHelper.validateFunctionParameters(boundFunction, parameters, edm, referringType, aliases); parseFunctionRest(uriInfo, boundFunction, parameters); return; } final EdmFunction unboundFunction = edm.getUnboundFunction(fullQualifiedName, parameterNames); if (unboundFunction != null) { ParserHelper.validateFunctionParameters(unboundFunction, parameters, edm, referringType, aliases); parseFunctionRest(uriInfo, unboundFunction, parameters); return; } throw new UriParserSemanticException("No function '" + fullQualifiedName + "' found.", UriParserSemanticException.MessageKeys.FUNCTION_NOT_FOUND, fullQualifiedName.getFullQualifiedNameAsString()); }
private void parseFunction(final FullQualifiedName fullQualifiedName, UriInfoImpl uriInfo, final EdmType lastType, final boolean lastIsCollection) throws UriParserException, UriValidationException { final List<UriParameter> parameters = ParserHelper.parseFunctionParameters(tokenizer, edm, referringType, true, aliases); final List<String> parameterNames = ParserHelper.getParameterNames(parameters); final EdmFunction boundFunction = edm.getBoundFunction(fullQualifiedName, lastType.getFullQualifiedName(), lastIsCollection, parameterNames); if (boundFunction != null) { ParserHelper.validateFunctionParameters(boundFunction, parameters, edm, referringType, aliases); parseFunctionRest(uriInfo, boundFunction, parameters); return; } final EdmFunction unboundFunction = edm.getUnboundFunction(fullQualifiedName, parameterNames); if (unboundFunction != null) { ParserHelper.validateFunctionParameters(unboundFunction, parameters, edm, referringType, aliases); parseFunctionRest(uriInfo, unboundFunction, parameters); return; } throw new UriParserSemanticException("No function '" + fullQualifiedName + "' found.", UriParserSemanticException.MessageKeys.FUNCTION_NOT_FOUND, fullQualifiedName.getFullQualifiedNameAsString()); }