private Object initializeFunctionObject(Function function) throws ODataEdmException { Object functionOperationObject; try { functionOperationObject = function.getJavaClass().newInstance(); } catch (ReflectiveOperationException e) { throw new ODataEdmException("Error during initialization of OData Function instance: " + function.getName()); } if (!(functionOperationObject instanceof Operation)) { throw new ODataEdmException("The initialized OData Function with name: " + function.getName() + " does not implement Operation interface"); } return functionOperationObject; }
public Builder addFunction(Function function) { this.functionsBuilder.put(function.getName(), function); return this; }
private void buildFunctions() { AnnotationFunctionFactory functionFactory = new AnnotationFunctionFactory(); for (Class<?> functionClass : functionClasses) { Function function = functionFactory.build(functionClass); getSchemaBuilder(function.getNamespace()).addFunction(function); } }
/** * Returns built function imports using passed lookup for searching entity sets and functions for appropriate * function import. * @param lookup lookup to search entity sets and functions for appropriate function import * @return built function imports */ public Iterable<FunctionImport> build(FactoryLookup lookup) { List<FunctionImport> builder = new ArrayList<>(); for (FunctionImportImpl.Builder functionImportBuilder : functionImportBuilders) { EntitySet entitySet = lookup.getEntitySet(functionImportBuilder.getEntitySetName()); Function function = lookup.getFunction(functionImportBuilder.getFunctionName()); if (entitySet == null && function.isBound()) { throw new IllegalArgumentException("Could not find EntitySet with name: " + functionImportBuilder.getEntitySetName()); } functionImportBuilder.setEntitySet(entitySet); functionImportBuilder.setFunction( function); builder.add(functionImportBuilder.build()); } return Collections.unmodifiableList(builder); }
Operation functionOperation = (Operation) initializeFunctionObject(function); fillOperationParameters(functionOperation, ODataUriUtil.getFunctionCallParameters(requestContext.getUri()), function.getParameters()); fillOperationParameters(functionImportOperation, ODataUriUtil.getFunctionImportCallParameters(requestContext.getUri()), functionImport.getFunction().getParameters()); return functionImportOperation;
public Builder addFunction(Function function) { this.functionsBuilder.put(function.getName(), function); return this; }
private void buildFunctions() { AnnotationFunctionFactory functionFactory = new AnnotationFunctionFactory(); for (Class<?> functionClass : functionClasses) { Function function = functionFactory.build(functionClass); getSchemaBuilder(function.getNamespace()).addFunction(function); } }
/** * Returns built function imports using passed lookup for searching entity sets and functions for appropriate * function import. * @param lookup lookup to search entity sets and functions for appropriate function import * @return built function imports */ public Iterable<FunctionImport> build(FactoryLookup lookup) { List<FunctionImport> builder = new ArrayList<>(); for (FunctionImportImpl.Builder functionImportBuilder : functionImportBuilders) { EntitySet entitySet = lookup.getEntitySet(functionImportBuilder.getEntitySetName()); Function function = lookup.getFunction(functionImportBuilder.getFunctionName()); if (entitySet == null && function.isBound()) { throw new IllegalArgumentException("Could not find EntitySet with name: " + functionImportBuilder.getEntitySetName()); } functionImportBuilder.setEntitySet(entitySet); functionImportBuilder.setFunction( function); builder.add(functionImportBuilder.build()); } return Collections.unmodifiableList(builder); }
Operation functionOperation = (Operation) initializeFunctionObject(function); fillOperationParameters(functionOperation, ODataUriUtil.getFunctionCallParameters(requestContext.getUri()), function.getParameters()); fillOperationParameters(functionImportOperation, ODataUriUtil.getFunctionImportCallParameters(requestContext.getUri()), functionImport.getFunction().getParameters()); return functionImportOperation;
private Object initializeFunctionObject(Function function) throws ODataEdmException { Object functionOperationObject; try { functionOperationObject = function.getJavaClass().newInstance(); } catch (ReflectiveOperationException e) { throw new ODataEdmException("Error during initialization of OData Function instance: " + function.getName()); } if (!(functionOperationObject instanceof Operation)) { throw new ODataEdmException("The initialized OData Function with name: " + function.getName() + " does not implement Operation interface"); } return functionOperationObject; }